aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--queries/vue/injections.scm60
-rw-r--r--tests/query/injections/vue/test-vue-injections.vue4
2 files changed, 34 insertions, 30 deletions
diff --git a/queries/vue/injections.scm b/queries/vue/injections.scm
index 84ac2160e..ffbc00bfc 100644
--- a/queries/vue/injections.scm
+++ b/queries/vue/injections.scm
@@ -1,53 +1,55 @@
; inherits html_tags
; <script lang="css">
-(
- (style_element
+((style_element
(start_tag
(attribute
(attribute_name) @_lang
(quoted_attribute_value (attribute_value) @_css)))
- (raw_text) @css)
- (#eq? @_lang "lang")
- (#eq? @_css "css")
-)
+ (#eq? @_lang "lang")
+ (#eq? @_css "css")
+ (raw_text) @css))
; TODO: When nvim-treesitter have postcss and less parser, use @language and @content instead
; <script lang="scss">
-(
- (style_element
+((style_element
(start_tag
(attribute
(attribute_name) @_lang
(quoted_attribute_value (attribute_value) @_scss)))
- (raw_text) @scss)
- (#eq? @_lang "lang")
- (#any-of? @_scss "scss" "less" "postcss")
-)
-
+ (#eq? @_lang "lang")
+ (#any-of? @_scss "scss" "less" "postcss")
+ (raw_text) @scss))
; <script lang="js">
-(
- (script_element
+((script_element
(start_tag
(attribute
(attribute_name) @_lang
(quoted_attribute_value (attribute_value) @_js)))
- (raw_text) @javascript)
- (#eq? @_lang "lang")
- (#eq? @_js "js")
-)
+ (#eq? @_lang "lang")
+ (#eq? @_js "js")
+ (raw_text) @javascript))
; <script lang="ts">
-(
- (script_element
+((script_element
(start_tag
(attribute
(attribute_name) @_lang
(quoted_attribute_value (attribute_value) @_ts)))
- (raw_text) @typescript)
- (#eq? @_lang "lang")
- (#eq? @_ts "ts")
-)
+ (#eq? @_lang "lang")
+ (#eq? @_ts "ts")
+ (raw_text) @typescript))
+
+; <script lang="tsx">
+; <script lang="jsx">
+((script_element
+ (start_tag
+ (attribute
+ (attribute_name) @_attr
+ (quoted_attribute_value (attribute_value) @language)))
+ (#eq? @_attr "lang")
+ (#any-of? @language "tsx" "jsx")
+ (raw_text) @content))
((interpolation
(raw_text) @javascript))
@@ -56,11 +58,9 @@
(quoted_attribute_value
(attribute_value) @javascript)))
-(
- (template_element
+((template_element
(start_tag
(attribute
(quoted_attribute_value (attribute_value) @_lang)))
- (text) @pug)
- (#eq? @_lang "pug")
-)
+ (#eq? @_lang "pug")
+ (text) @pug))
diff --git a/tests/query/injections/vue/test-vue-injections.vue b/tests/query/injections/vue/test-vue-injections.vue
index b0df16071..75d3d831c 100644
--- a/tests/query/injections/vue/test-vue-injections.vue
+++ b/tests/query/injections/vue/test-vue-injections.vue
@@ -20,6 +20,10 @@
<script lang="ts" defer>const foo: number = 1 </script>
<!-- ^ typescript -->
<!-- ^ !javascript -->
+<script lang="tsx" defer>const foo: number = 1</script>
+ <!-- ^ tsx -->
+ <!-- ^ !jsx -->
+ <!-- ^ !typescript -->
<style> .bar { .foo{ } } </style>
<!-- ^ css -->
<style scoped> .page.page--news { background: rebeccapurple; } </style>