================
@@ -2037,14 +2038,34 @@ class CodeCompleteFlow {
}
std::optional<float> fuzzyScore(const CompletionCandidate &C) {
- // Macros can be very spammy, so we only support prefix completion.
- if (((C.SemaResult &&
+ using MacroFilterPolicy = Config::MacroFilterPolicy;
+
+ const auto IsMacroResult =
+ ((C.SemaResult &&
C.SemaResult->Kind == CodeCompletionResult::RK_Macro) ||
(C.IndexResult &&
- C.IndexResult->SymInfo.Kind == index::SymbolKind::Macro)) &&
- !C.Name.starts_with_insensitive(Filter->pattern()))
- return std::nullopt;
- return Filter->match(C.Name);
+ C.IndexResult->SymInfo.Kind == index::SymbolKind::Macro));
+
+ if (!IsMacroResult)
+ return Filter->match(C.Name);
+
+ // macros with leading and trailing underscore are probably spammy
+ switch (Opts.MacroFilter) {
+ case MacroFilterPolicy::ExactPrefix:
+ if (C.Name.starts_with_insensitive(Filter->pattern()))
+ return Filter->match(C.Name);
+ else
+ return std::nullopt;
+ case MacroFilterPolicy::FuzzyMatch:
+ if (!C.Name.starts_with_insensitive("_") &&
+ !C.Name.ends_with_insensitive("_"))
+ return Filter->match(C.Name);
+ else
+ return std::nullopt;
----------------
zwuis wrote:
Don't use `else` after a `return`.
https://llvm.org/docs/CodingStandards.html#don-t-use-else-after-a-return
https://github.com/llvm/llvm-project/pull/169880
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits