================
@@ -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("_") &&
----------------
HighCommander4 wrote:
> Do I add that as a separate option, since most wouldn't be working on stdlib
> implementations?
I would say the no, the user having typed an underscore at the beginning of a
symbol is a strong enough signal that we should include completion proposals
beginning with an underscore regardless of the nature of the project.
https://github.com/llvm/llvm-project/pull/169880
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits