diff --git a/.changeset/big-cheetahs-admire.md b/.changeset/big-cheetahs-admire.md new file mode 100644 index 000000000..d6b04ba74 --- /dev/null +++ b/.changeset/big-cheetahs-admire.md @@ -0,0 +1,5 @@ +--- +'svelte-language-server': patch +--- + +[perf]: move return statement in `getCompletions` so it returns immediately if possible diff --git a/packages/language-server/src/plugins/svelte/features/getCompletions.ts b/packages/language-server/src/plugins/svelte/features/getCompletions.ts index 99259ba94..5410cbad6 100644 --- a/packages/language-server/src/plugins/svelte/features/getCompletions.ts +++ b/packages/language-server/src/plugins/svelte/features/getCompletions.ts @@ -34,16 +34,16 @@ export function getCompletions( svelteDoc: SvelteDocument, position: Position ): CompletionList | null { - const offset = svelteDoc.offsetAt(position); + if (inStyleOrScript(svelteDoc, position)) { + return null; + } + const offset = svelteDoc.offsetAt(position); const lastCharactersBeforePosition = svelteDoc .getText() // use last 10 characters, should cover 99% of all cases .substr(Math.max(offset - 10, 0), Math.min(offset, 10)); const precededByOpeningBracket = /[\s\S]*{\s*[#:/@]\w*$/.test(lastCharactersBeforePosition); - if (inStyleOrScript(svelteDoc, position)) { - return null; - } if (precededByOpeningBracket) { return getTagCompletionsWithinMoustache();