TraceQL: Speed up autocomplete tag processing by 100x (#96862)

This commit is contained in:
Leon Sorokin 2024-11-21 12:52:58 -06:00 committed by GitHub
parent f9eb013334
commit 3e79ead240
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -427,13 +427,7 @@ export class CompletionProvider implements monacoTypes.languages.CompletionItemP
private getTagsCompletions(prepend?: string, scope?: string): CompletionItem[] {
const tags = this.languageProvider.getTraceqlAutocompleteTags(scope);
return tags
.sort((a, b) => a.localeCompare(b, undefined, { sensitivity: 'accent' }))
.map((key) => ({
label: key,
insertText: (prepend || '') + key,
type: 'TAG_NAME',
}));
return tagsToCompletionItems(tags, prepend);
}
private getIntrinsicsCompletions(prepend?: string, append?: string): CompletionItem[] {
@ -549,3 +543,13 @@ function fixSuggestion(
}
}
}
const collator = new Intl.Collator('en', { sensitivity: 'accent' });
function tagsToCompletionItems(tags: string[], prepend = ''): CompletionItem[] {
return tags.sort(collator.compare).map((key) => ({
label: key,
insertText: `${prepend}${key}`,
type: 'TAG_NAME',
}));
}