Only filter out duplicates if they are of the same kind

This commit is contained in:
bangbangsheshotmedown 2024-11-10 17:34:28 +00:00 committed by GitHub
parent 27b1042959
commit 93fcbc827b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 2 additions and 1 deletions

View File

@ -592,7 +592,7 @@ void setCompletions(T)(ref AutocompleteResponse response,
{ {
if (sym.name !is null && sym.name.length > 0 && isPublicCompletionKind(sym.kind) if (sym.name !is null && sym.name.length > 0 && isPublicCompletionKind(sym.kind)
&& (p is null ? true : toUpper(sym.name.data).startsWith(toUpper(p))) && (p is null ? true : toUpper(sym.name.data).startsWith(toUpper(p)))
&& !r.completions.canFind!(a => a.identifier == sym.name) && !r.completions.canFind!(a => a.identifier == sym.name && a.kind == sym.kind)
&& sym.name[0] != '*' && sym.name[0] != '*'
&& mightBeRelevantInCompletionScope(sym, completionScope)) && mightBeRelevantInCompletionScope(sym, completionScope))
{ {
@ -610,6 +610,7 @@ void setCompletions(T)(ref AutocompleteResponse response,
auto currentSymbols = completionScope.getSymbolsInCursorScope(cursorPosition); auto currentSymbols = completionScope.getSymbolsInCursorScope(cursorPosition);
foreach (s; currentSymbols.filter!(a => isPublicCompletionKind(a.kind) foreach (s; currentSymbols.filter!(a => isPublicCompletionKind(a.kind)
&& toUpper(a.name.data).startsWith(toUpper(partial)) && toUpper(a.name.data).startsWith(toUpper(partial))
&& !response.completions.canFind!(r => r.identifier == a.name && r.kind == a.kind)
&& mightBeRelevantInCompletionScope(a, completionScope))) && mightBeRelevantInCompletionScope(a, completionScope)))
{ {
response.completions ~= makeSymbolCompletionInfo(s, s.kind); response.completions ~= makeSymbolCompletionInfo(s, s.kind);