aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--queries/svelte/injections.scm11
-rw-r--r--tests/query/injections/svelte/test-svelte-injections.svelte39
2 files changed, 43 insertions, 7 deletions
diff --git a/queries/svelte/injections.scm b/queries/svelte/injections.scm
index d66530f7a..65adb5143 100644
--- a/queries/svelte/injections.scm
+++ b/queries/svelte/injections.scm
@@ -4,16 +4,13 @@
(style_element
(start_tag
(attribute
+ (attribute_name) @_attr
(quoted_attribute_value (attribute_value) @_lang)))
(raw_text) @scss)
+ (#eq? @_attr "lang")
(#any-of? @_lang "scss" "postcss" "less")
)
-((attribute
- (attribute_name) @_attr
- (quoted_attribute_value (attribute_value) @css))
- (#eq? @_attr "style"))
-
[
(raw_text_expr)
(raw_text_each)
@@ -23,9 +20,9 @@
(script_element
(start_tag
(attribute
+ (attribute_name) @_attr
(quoted_attribute_value (attribute_value) @_lang)))
(raw_text) @typescript)
+ (#eq? @_attr "lang")
(#any-of? @_lang "ts" "typescript")
)
-
-(comment) @comment
diff --git a/tests/query/injections/svelte/test-svelte-injections.svelte b/tests/query/injections/svelte/test-svelte-injections.svelte
new file mode 100644
index 000000000..a821dd080
--- /dev/null
+++ b/tests/query/injections/svelte/test-svelte-injections.svelte
@@ -0,0 +1,39 @@
+<script>
+ import Button from "./Button.svelte";
+// ^ javascript
+</script>
+<script lang="ts">
+ const foo: number = 1
+// ^ typescript
+</script>
+
+<style>
+ main {
+ font-family: sans-serif;
+ text-align: center;
+/* ^ css
+*/
+ }
+</style>
+<style lang="scss">
+ main {
+ font-family: sans-serif;
+ text-align: center;
+ &:hover {
+// ^ scss
+ }
+ }
+</style>
+
+<main>
+ <h1>Test file</h1>
+ {#each someItems as someItem}
+<!-- ^ javascript
+-->
+ <div>{someItem}</div>
+<!-- ^ javascript
+-->
+ {/each}
+ <Button />
+ <button on:click={() => foo++}></button>
+</main>