diff options
author | Michael Davis | 2022-08-03 05:09:44 +0000 |
---|---|---|
committer | GitHub | 2022-08-03 05:09:44 +0000 |
commit | 08b442f4cc962fd83a41754aba41f742acd1e8dc (patch) | |
tree | 1b4c14d9504bb6311d134bac6fac1399b9401d1a /runtime/queries/ecma/injections.scm | |
parent | 69f84e25165d62d0f38bcc80bf9108f9c0802cad (diff) |
Inherit javascript/typescript from common 'ecma' queries (#3301)
JavaScript queries now contain a few lines that prevent them from
being used whole-sale in typescript with `; inherits: javascript`.
Here we follow nvim-treesitter's way of using a fake 'ecma' language
as a common base for JavaScript and TypeScript to share as much as
we can.
Diffstat (limited to 'runtime/queries/ecma/injections.scm')
-rw-r--r-- | runtime/queries/ecma/injections.scm | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/runtime/queries/ecma/injections.scm b/runtime/queries/ecma/injections.scm new file mode 100644 index 00000000..af3aef10 --- /dev/null +++ b/runtime/queries/ecma/injections.scm @@ -0,0 +1,36 @@ +; Parse the contents of tagged template literals using +; a language inferred from the tag. + +(call_expression + function: [ + (identifier) @injection.language + (member_expression + property: (property_identifier) @injection.language) + ] + arguments: (template_string) @injection.content) + +; Parse the contents of gql template literals + +((call_expression + function: (identifier) @_template_function_name + arguments: (template_string) @injection.content) + (#eq? @_template_function_name "gql") + (#set! injection.language "graphql")) + +; Parse regex syntax within regex literals + +((regex_pattern) @injection.content + (#set! injection.language "regex")) + +; Parse JSDoc annotations in multiline comments + +((comment) @injection.content + (#set! injection.language "jsdoc") + (#match? @injection.content "^/\\*+")) + +; Parse general tags in single line comments + +((comment) @injection.content + (#set! injection.language "comment") + (#match? @injection.content "^//")) + |