From 8da8c2f00d458458b2c99d0def341ee8e3773e19 Mon Sep 17 00:00:00 2001 From: SerKo Date: Mon, 15 Dec 2025 23:45:04 +0800 Subject: [PATCH 1/2] fix(syntax): svelte ts highlighting when trailing type alias misses semicolon --- .../svelte-vscode/syntaxes/svelte.tmLanguage.src.yaml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/svelte-vscode/syntaxes/svelte.tmLanguage.src.yaml b/packages/svelte-vscode/syntaxes/svelte.tmLanguage.src.yaml index e925ff2f2..de163d58d 100644 --- a/packages/svelte-vscode/syntaxes/svelte.tmLanguage.src.yaml +++ b/packages/svelte-vscode/syntaxes/svelte.tmLanguage.src.yaml @@ -21,8 +21,14 @@ injections: # TypeScript | 'ts' 'typescript' | 'source.ts' 'L:(meta.script.svelte | meta.style.svelte) (meta.lang.ts | meta.lang.typescript) - (meta source)': - patterns: [{begin: '(?<=>)(?!)(?=[^\n]*])', end: '(?=])', name: meta.embedded.block.svelte, + contentName: source.ts, patterns: [{ include: source.ts }]}, + # fix #1110 + {begin: '(?<=>)(?!])', name: meta.embedded.block.svelte, + contentName: source.ts, patterns: [{ include: source.ts }]} + ] # CoffeeScript | 'coffee' | 'source.coffee' 'L:(meta.script.svelte | meta.style.svelte) meta.lang.coffee - (meta source)': From 969f62901f012ffd694e7b95b8faf8dd3487edc4 Mon Sep 17 00:00:00 2001 From: SerKo Date: Tue, 16 Dec 2025 00:01:17 +0800 Subject: [PATCH 2/2] test: add fixtures --- .../script-type-no-semicolon/input.svelte | 3 +++ .../input.svelte.snap | 23 +++++++++++++++++++ .../script-type-single-line/input.svelte | 1 + .../script-type-single-line/input.svelte.snap | 21 +++++++++++++++++ 4 files changed, 48 insertions(+) create mode 100644 packages/svelte-vscode/test/grammar/samples/script-type-no-semicolon/input.svelte create mode 100644 packages/svelte-vscode/test/grammar/samples/script-type-no-semicolon/input.svelte.snap create mode 100644 packages/svelte-vscode/test/grammar/samples/script-type-single-line/input.svelte create mode 100644 packages/svelte-vscode/test/grammar/samples/script-type-single-line/input.svelte.snap diff --git a/packages/svelte-vscode/test/grammar/samples/script-type-no-semicolon/input.svelte b/packages/svelte-vscode/test/grammar/samples/script-type-no-semicolon/input.svelte new file mode 100644 index 000000000..96bf82c54 --- /dev/null +++ b/packages/svelte-vscode/test/grammar/samples/script-type-no-semicolon/input.svelte @@ -0,0 +1,3 @@ + diff --git a/packages/svelte-vscode/test/grammar/samples/script-type-no-semicolon/input.svelte.snap b/packages/svelte-vscode/test/grammar/samples/script-type-no-semicolon/input.svelte.snap new file mode 100644 index 000000000..a80f8afd4 --- /dev/null +++ b/packages/svelte-vscode/test/grammar/samples/script-type-no-semicolon/input.svelte.snap @@ -0,0 +1,23 @@ +> +#^^ source.svelte meta.script.svelte meta.tag.end.svelte punctuation.definition.tag.begin.svelte +# ^^^^^^ source.svelte meta.script.svelte meta.tag.end.svelte entity.name.tag.svelte +# ^ source.svelte meta.script.svelte meta.tag.end.svelte punctuation.definition.tag.end.svelte +> \ No newline at end of file diff --git a/packages/svelte-vscode/test/grammar/samples/script-type-single-line/input.svelte b/packages/svelte-vscode/test/grammar/samples/script-type-single-line/input.svelte new file mode 100644 index 000000000..efe2c8395 --- /dev/null +++ b/packages/svelte-vscode/test/grammar/samples/script-type-single-line/input.svelte @@ -0,0 +1 @@ + diff --git a/packages/svelte-vscode/test/grammar/samples/script-type-single-line/input.svelte.snap b/packages/svelte-vscode/test/grammar/samples/script-type-single-line/input.svelte.snap new file mode 100644 index 000000000..85488356b --- /dev/null +++ b/packages/svelte-vscode/test/grammar/samples/script-type-single-line/input.svelte.snap @@ -0,0 +1,21 @@ +> +#^ source.svelte meta.script.svelte meta.tag.start.svelte punctuation.definition.tag.begin.svelte +# ^^^^^^ source.svelte meta.script.svelte meta.tag.start.svelte entity.name.tag.svelte +# ^ source.svelte meta.script.svelte meta.lang.ts.svelte meta.tag.start.svelte +# ^^^^^^^ source.svelte meta.script.svelte meta.lang.ts.svelte meta.tag.start.svelte meta.attribute.context.svelte entity.other.attribute-name.svelte +# ^ source.svelte meta.script.svelte meta.lang.ts.svelte meta.tag.start.svelte meta.attribute.context.svelte punctuation.separator.key-value.svelte +# ^ source.svelte meta.script.svelte meta.lang.ts.svelte meta.tag.start.svelte meta.attribute.context.svelte string.quoted.svelte punctuation.definition.string.begin.svelte +# ^^^^^^ source.svelte meta.script.svelte meta.lang.ts.svelte meta.tag.start.svelte meta.attribute.context.svelte string.quoted.svelte +# ^ source.svelte meta.script.svelte meta.lang.ts.svelte meta.tag.start.svelte meta.attribute.context.svelte string.quoted.svelte punctuation.definition.string.end.svelte +# ^ source.svelte meta.script.svelte meta.lang.ts.svelte meta.tag.start.svelte +# ^^^^ source.svelte meta.script.svelte meta.lang.ts.svelte meta.tag.start.svelte meta.attribute.lang.svelte entity.other.attribute-name.svelte +# ^ source.svelte meta.script.svelte meta.lang.ts.svelte meta.tag.start.svelte meta.attribute.lang.svelte punctuation.separator.key-value.svelte +# ^ source.svelte meta.script.svelte meta.lang.ts.svelte meta.tag.start.svelte meta.attribute.lang.svelte string.quoted.svelte punctuation.definition.string.begin.svelte +# ^^ source.svelte meta.script.svelte meta.lang.ts.svelte meta.tag.start.svelte meta.attribute.lang.svelte string.quoted.svelte +# ^ source.svelte meta.script.svelte meta.lang.ts.svelte meta.tag.start.svelte meta.attribute.lang.svelte string.quoted.svelte punctuation.definition.string.end.svelte +# ^ source.svelte meta.script.svelte meta.lang.ts.svelte meta.tag.start.svelte punctuation.definition.tag.end.svelte +# ^^^^^^^^^^^ source.svelte meta.script.svelte meta.lang.ts.svelte meta.embedded.block.svelte source.ts +# ^^ source.svelte meta.script.svelte meta.tag.end.svelte punctuation.definition.tag.begin.svelte +# ^^^^^^ source.svelte meta.script.svelte meta.tag.end.svelte entity.name.tag.svelte +# ^ source.svelte meta.script.svelte meta.tag.end.svelte punctuation.definition.tag.end.svelte +> \ No newline at end of file