mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
TraceQL: Speed up autocomplete tag processing by 100x (#96862)
This commit is contained in:
parent
f9eb013334
commit
3e79ead240
@ -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',
|
||||
}));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user