diff options
Diffstat (limited to 'runtime/queries/rust/injections.scm')
| -rw-r--r-- | runtime/queries/rust/injections.scm | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/runtime/queries/rust/injections.scm b/runtime/queries/rust/injections.scm new file mode 100644 index 000000000..7bffd1fc9 --- /dev/null +++ b/runtime/queries/rust/injections.scm @@ -0,0 +1,89 @@ +(macro_invocation + macro: [ + (scoped_identifier + name: (_) @_macro_name) + (identifier) @_macro_name + ] + (token_tree) @injection.content + (#not-any-of? @_macro_name "slint" "html" "json") + (#set! injection.language "rust") + (#set! injection.include-children)) + +(macro_invocation + macro: [ + (scoped_identifier + name: (_) @injection.language) + (identifier) @injection.language + ] + (token_tree) @injection.content + (#any-of? @injection.language "slint" "html" "json") + (#offset! @injection.content 0 1 0 -1) + (#set! injection.include-children)) + +(macro_definition + (macro_rule + left: (token_tree_pattern) @injection.content + (#set! injection.language "rust"))) + +(macro_definition + (macro_rule + right: (token_tree) @injection.content + (#set! injection.language "rust"))) + +([ + (line_comment) + (block_comment) +] @injection.content + (#set! injection.language "comment")) + +(call_expression + function: (scoped_identifier + path: (identifier) @_regex + (#any-of? @_regex "Regex" "RegexBuilder") + name: (identifier) @_new + (#eq? @_new "new")) + arguments: (arguments + (raw_string_literal + (string_content) @injection.content)) + (#set! injection.language "regex")) + +(call_expression + function: (scoped_identifier + path: (scoped_identifier + (identifier) @_regex + (#any-of? @_regex "Regex" "RegexBuilder") .) + name: (identifier) @_new + (#eq? @_new "new")) + arguments: (arguments + (raw_string_literal + (string_content) @injection.content)) + (#set! injection.language "regex")) + +(call_expression + function: (scoped_identifier + path: (identifier) @_regex + (#any-of? @_regex "RegexSet" "RegexSetBuilder") + name: (identifier) @_new + (#eq? @_new "new")) + arguments: (arguments + (array_expression + (raw_string_literal + (string_content) @injection.content))) + (#set! injection.language "regex")) + +(call_expression + function: (scoped_identifier + path: (scoped_identifier + (identifier) @_regex + (#any-of? @_regex "RegexSet" "RegexSetBuilder") .) + name: (identifier) @_new + (#eq? @_new "new")) + arguments: (arguments + (array_expression + (raw_string_literal + (string_content) @injection.content))) + (#set! injection.language "regex")) + +((block_comment) @injection.content + (#match? @injection.content "/\\*!([a-zA-Z]+:)?re2c") + (#set! injection.language "re2c")) |
