diff options
Diffstat (limited to 'queries/ecma/injections.scm')
| -rw-r--r-- | queries/ecma/injections.scm | 92 |
1 files changed, 52 insertions, 40 deletions
diff --git a/queries/ecma/injections.scm b/queries/ecma/injections.scm index ba0ea4fa1..3b55295ce 100644 --- a/queries/ecma/injections.scm +++ b/queries/ecma/injections.scm @@ -1,59 +1,67 @@ (((comment) @_jsdoc_comment - (#lua-match? @_jsdoc_comment "^/[*][*][^*].*[*]/$")) @jsdoc) + (#lua-match? @_jsdoc_comment "^/[*][*][^*].*[*]/$")) @injection.content + (#set! injection.language "jsdoc")) -(comment) @comment +((comment) @injection.content + (#set! injection.language "comment")) ; html(`...`), html`...`, sql(...) etc (call_expression - function: ((identifier) @language) + function: ((identifier) @injection.language) arguments: [ (arguments - (template_string) @content) - (template_string) @content + (template_string) @injection.content) + (template_string) @injection.content ] - (#offset! @content 0 1 0 -1) - (#not-eq? @content "svg")) + (#offset! @injection.content 0 1 0 -1) + (#not-eq? @injection.language "svg")) ; svg`...` or svg(`...`), which uses the html parser, so is not included in the previous query (call_expression function: ((identifier) @_name (#eq? @_name "svg")) arguments: [ (arguments - (template_string) @html) - (template_string) @html + (template_string) @injection.content) + (template_string) @injection.content ] - (#offset! @html 0 1 0 -1)) + (#offset! @injection.content 0 1 0 -1) + (#set! injection.language "html")) (call_expression function: ((identifier) @_name (#eq? @_name "gql")) - arguments: ((template_string) @graphql - (#offset! @graphql 0 1 0 -1))) + arguments: ((template_string) @injection.content + (#offset! @injection.content 0 1 0 -1) + (#set! injection.language "graphql"))) (call_expression function: ((identifier) @_name (#eq? @_name "hbs")) - arguments: ((template_string) @glimmer - (#offset! @glimmer 0 1 0 -1))) + arguments: ((template_string) @injection.content + (#offset! @injection.content 0 1 0 -1) + (#set! injection.language "glimmer"))) -((glimmer_template) @glimmer) +((glimmer_template) @injection.content + (#set! injection.language "glimmer")) ; styled.div`<css>` (call_expression function: (member_expression object: (identifier) @_name (#eq? @_name "styled")) - arguments: ((template_string) @css - (#offset! @css 0 1 0 -1))) + arguments: ((template_string) @injection.content + (#offset! @injection.content 0 1 0 -1) + (#set! injection.language "css"))) ; styled(Component)`<css>` (call_expression function: (call_expression function: (identifier) @_name (#eq? @_name "styled")) - arguments: ((template_string) @css - (#offset! @css 0 1 0 -1))) + arguments: ((template_string) @injection.content + (#offset! @injection.content 0 1 0 -1) + (#set! injection.language "css"))) ; styled.div.attrs({ prop: "foo" })`<css>` (call_expression @@ -62,8 +70,9 @@ object: (member_expression object: (identifier) @_name (#eq? @_name "styled")))) - arguments: ((template_string) @css - (#offset! @css 0 1 0 -1))) + arguments: ((template_string) @injection.content + (#offset! @injection.content 0 1 0 -1) + (#set! injection.language "css"))) ; styled(Component).attrs({ prop: "foo" })`<css>` @@ -73,31 +82,34 @@ object: (call_expression function: (identifier) @_name (#eq? @_name "styled")))) - arguments: ((template_string) @css - (#offset! @css 0 1 0 -1))) + arguments: ((template_string) @injection.content + (#offset! @injection.content 0 1 0 -1) + (#set! injection.language "css"))) -(regex_pattern) @regex +((regex_pattern) @injection.content + (#set! injection.language "regex")) ; ((comment) @_gql_comment ; (#eq? @_gql_comment "/* GraphQL */") -; (template_string) @graphql) +; (template_string) @injection.content +; (#set! injection.language "graphql")) -((template_string) @graphql - (#lua-match? @graphql "^`#graphql") - (#offset! @graphql 0 1 0 -1)) +((template_string) @injection.content + (#lua-match? @injection.content "^`#graphql") + (#offset! @injection.content 0 1 0 -1) + (#set! injection.language "graphql")) ; el.innerHTML = `<html>` -(assignment_expression - left: (member_expression - property: (property_identifier) @_prop - (#any-of? @_prop "innerHTML" "outerHTML")) - right: (template_string) @html - (#offset! @html 0 1 0 -1)) - ; el.innerHTML = '<html>' (assignment_expression - left: (member_expression - property: (property_identifier) @_prop - (#any-of? @_prop "innerHTML" "outerHTML")) - right: (string) @html - (#offset! @html 0 1 0 -1)) + left: + (member_expression + property: (property_identifier) @_prop + (#any-of? @_prop "outerHTML" "innerHTML")) + right: + [ + (template_string) + (string) + ] @injection.content + (#offset! @injection.content 0 1 0 -1) + (#set! injection.language "html")) |
