Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'runtime/queries/rust/injections.scm')
| -rw-r--r-- | runtime/queries/rust/injections.scm | 135 |
1 files changed, 12 insertions, 123 deletions
diff --git a/runtime/queries/rust/injections.scm b/runtime/queries/rust/injections.scm index 0c7cc350..ae9e587f 100644 --- a/runtime/queries/rust/injections.scm +++ b/runtime/queries/rust/injections.scm @@ -1,9 +1,11 @@ -([(line_comment !doc) (block_comment !doc)] @injection.content +([(line_comment) (block_comment)] @injection.content (#set! injection.language "comment")) -((doc_comment) @injection.content - (#set! injection.language "markdown-rustdoc") - (#set! injection.combined)) +((macro_invocation + macro: (identifier) @_html (#eq? @_html "html") + (token_tree) @injection.content) + (#set! injection.language "html") + (#set! injection.include-children)) ((macro_invocation (token_tree) @injection.content) @@ -15,64 +17,18 @@ (#set! injection.language "rust") (#set! injection.include-children)) -((macro_invocation - macro: - [ - (scoped_identifier - name: (_) @_macro_name) - (identifier) @_macro_name - ] - (token_tree) @injection.content) - (#eq? @_macro_name "html") - (#set! injection.language "html") - (#set! injection.include-children)) - -((macro_invocation - macro: - [ - (scoped_identifier - name: (_) @_macro_name) - (identifier) @_macro_name - ] - (token_tree) @injection.content) - (#eq? @_macro_name "slint") - (#set! injection.language "slint") - (#set! injection.include-children)) - -((macro_invocation - macro: - [ - (scoped_identifier name: (_) @_macro_name) - (identifier) @_macro_name - ] - (token_tree - (token_tree . "{" "}" .) @injection.content)) - (#eq? @_macro_name "json") - (#set! injection.language "json") - (#set! injection.include-children)) - (call_expression function: (scoped_identifier - path: (identifier) @_regex (#any-of? @_regex "Regex" "RegexBuilder") + path: (identifier) @_regex (#eq? @_regex "Regex") name: (identifier) @_new (#eq? @_new "new")) - arguments: - (arguments - [ - (string_literal (string_content) @injection.content) - (raw_string_literal (string_content) @injection.content) - ]) + arguments: (arguments (raw_string_literal) @injection.content) (#set! injection.language "regex")) (call_expression function: (scoped_identifier - path: (scoped_identifier (identifier) @_regex (#any-of? @_regex "Regex" "RegexBuilder") .) + path: (scoped_identifier (identifier) @_regex (#eq? @_regex "Regex") .) name: (identifier) @_new (#eq? @_new "new")) - arguments: - (arguments - [ - (string_literal (string_content) @injection.content) - (raw_string_literal (string_content) @injection.content) - ]) + arguments: (arguments (raw_string_literal) @injection.content) (#set! injection.language "regex")) ; Highlight SQL in `sqlx::query!()`, `sqlx::query_scalar!()`, and `sqlx::query_scalar_unchecked!()` @@ -83,10 +39,7 @@ (token_tree ; Only the first argument is SQL . - [ - (string_literal (string_content) @injection.content) - (raw_string_literal (string_content) @injection.content) - ] + [(string_literal) (raw_string_literal)] @injection.content ) (#set! injection.language "sql")) @@ -101,70 +54,6 @@ ; Allow anything as the first argument in case the user has lower case type ; names for some reason (_) - [ - (string_literal (string_content) @injection.content) - (raw_string_literal (string_content) @injection.content) - ] + [(string_literal) (raw_string_literal)] @injection.content ) (#set! injection.language "sql")) - -; Special language `tree-sitter-rust-format-args` for Rust macros, -; which use `format_args!` under the hood and therefore have -; the `format_args!` syntax. -; -; This language is injected into a hard-coded set of macros. -( - (macro_invocation - macro: - [ - (scoped_identifier - name: (_) @_macro_name) - (identifier) @_macro_name - ] - (token_tree) @injection.content - ) - (#any-of? @_macro_name - ; 1st argument is `format_args!` - - ; std - "print" "println" "eprint" "eprintln" - "format" "format_args" "todo" "panic" - "unreachable" "unimplemented" "compile_error" - ; log - "crit" "trace" "debug" "info" "warn" "error" - ; anyhow - "anyhow" "bail" - ; syn - "format_ident" - ; indoc - "formatdoc" "printdoc" "eprintdoc" "writedoc" - ; iced - "text" - ; ratatui - "span" - ; eyre - "eyre" - ; miette - "miette" - - ; 2nd argument is `format_args!` - - ; std - "write" "writeln" "assert" "debug_assert" - ; defmt - "expect" "unwrap" - ; ratatui - "span" - - ; 3rd argument is `format_args!` - - ; std - "assert_eq" "debug_assert_eq" "assert_ne" "debug_assert_ne" - - ; Dioxus's rsx! macro accepts string interpolation in all - ; strings, across the entire token tree - "rsx" - ) - (#set! injection.language "rust-format-args-macro") - (#set! injection.include-children) -) |