aboutsummaryrefslogtreecommitdiffstats
path: root/runtime/queries/rust/injections.scm
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/queries/rust/injections.scm')
-rw-r--r--runtime/queries/rust/injections.scm89
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"))