diff --git a/packages/language-server/src/plugins/typescript/features/DiagnosticsProvider.ts b/packages/language-server/src/plugins/typescript/features/DiagnosticsProvider.ts
index b69864983..62a5fb702 100644
--- a/packages/language-server/src/plugins/typescript/features/DiagnosticsProvider.ts
+++ b/packages/language-server/src/plugins/typescript/features/DiagnosticsProvider.ts
@@ -57,7 +57,7 @@ export class DiagnosticsProviderImpl implements DiagnosticsProvider {
const { lang, tsDoc } = await this.getLSAndTSDoc(document);
if (
- ['coffee', 'coffeescript'].includes(document.getLanguageAttribute('script')) ||
+ ['coffee', 'coffeescript', 'civet'].includes(document.getLanguageAttribute('script')) ||
cancellationToken?.isCancellationRequested
) {
return [];
diff --git a/packages/svelte-vscode/package.json b/packages/svelte-vscode/package.json
index 43059467e..f41cb5fbb 100644
--- a/packages/svelte-vscode/package.json
+++ b/packages/svelte-vscode/package.json
@@ -438,7 +438,8 @@
"source.stylus": "stylus",
"source.js": "javascript",
"source.ts": "typescript",
- "source.coffee": "coffeescript"
+ "source.coffee": "coffeescript",
+ "source.civet": "civet"
},
"unbalancedBracketScopes": [
"keyword.operator.relational",
diff --git a/packages/svelte-vscode/syntaxes/svelte.tmLanguage.src.yaml b/packages/svelte-vscode/syntaxes/svelte.tmLanguage.src.yaml
index f2a5951a2..41e2e7517 100644
--- a/packages/svelte-vscode/syntaxes/svelte.tmLanguage.src.yaml
+++ b/packages/svelte-vscode/syntaxes/svelte.tmLanguage.src.yaml
@@ -29,6 +29,11 @@ injections:
patterns: [{begin: '(?<=>)(?!)', end: '(?=)', name: meta.embedded.block.svelte,
contentName: source.coffee, patterns: [{ include: source.coffee }]}]
+ # Civet | 'civet' | 'source.civet'
+ 'L:(meta.script.svelte | meta.style.svelte) meta.lang.civet - (meta source)':
+ patterns: [{begin: '(?<=>)(?!)', end: '(?=)', name: meta.embedded.block.svelte,
+ contentName: source.civet, patterns: [{ include: source.civet }]}]
+
# Script Languages
# Default (JavaScript)
'L:meta.script.svelte - meta.lang - (meta source)':
@@ -89,7 +94,7 @@ injections:
# - TS / JS / CS -
- 'L:(source.ts, source.js, source.coffee)':
+ 'L:(source.ts, source.js, source.coffee, source.civet)':
patterns:
# Matches the store accessor symbol.
# i.e. the `$` in `$myStore`.
diff --git a/packages/svelte-vscode/test/grammar/dummy/civet.tmLanguage-dummy.json b/packages/svelte-vscode/test/grammar/dummy/civet.tmLanguage-dummy.json
new file mode 100644
index 000000000..fd980370b
--- /dev/null
+++ b/packages/svelte-vscode/test/grammar/dummy/civet.tmLanguage-dummy.json
@@ -0,0 +1,4 @@
+{
+ "comment": "Dummy Civet TextMate grammar for use in testing",
+ "scopeName": "source.civet"
+}
diff --git a/packages/svelte-vscode/test/grammar/samples/script-civet/input.svelte b/packages/svelte-vscode/test/grammar/samples/script-civet/input.svelte
new file mode 100644
index 000000000..664e87c26
--- /dev/null
+++ b/packages/svelte-vscode/test/grammar/samples/script-civet/input.svelte
@@ -0,0 +1,3 @@
+
diff --git a/packages/svelte-vscode/test/grammar/samples/script-civet/input.svelte.snap b/packages/svelte-vscode/test/grammar/samples/script-civet/input.svelte.snap
new file mode 100644
index 000000000..0b62533cb
--- /dev/null
+++ b/packages/svelte-vscode/test/grammar/samples/script-civet/input.svelte.snap
@@ -0,0 +1,17 @@
+>
+#^^ 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