diff options
| author | Riley Bruins <ribru17@hotmail.com> | 2024-10-23 21:18:39 -0700 |
|---|---|---|
| committer | Christian Clason <ch.clason+github@icloud.com> | 2024-10-27 11:51:33 +0100 |
| commit | 00d219068385a4aa80859d4606ad6e03af6faa83 (patch) | |
| tree | bfe7ca5252f4e0ca9c37aef1f40e8ac1c4b08977 /queries | |
| parent | bot(lockfile): update javascript, mlir, templ, tlaplus (diff) | |
| download | nvim-treesitter-00d219068385a4aa80859d4606ad6e03af6faa83.tar nvim-treesitter-00d219068385a4aa80859d4606ad6e03af6faa83.tar.gz nvim-treesitter-00d219068385a4aa80859d4606ad6e03af6faa83.tar.bz2 nvim-treesitter-00d219068385a4aa80859d4606ad6e03af6faa83.tar.lz nvim-treesitter-00d219068385a4aa80859d4606ad6e03af6faa83.tar.xz nvim-treesitter-00d219068385a4aa80859d4606ad6e03af6faa83.tar.zst nvim-treesitter-00d219068385a4aa80859d4606ad6e03af6faa83.zip | |
fix(rust): regex injections, highlights
**Problem:** Rust's regex injections were not applied since the string
content is behind a `(string_content)` node, and the injections were
applied to the parent node without the `include-children` directive.
**Solution:** Apply the injections to the string content. Also highlight
them accordingly.
Diffstat (limited to 'queries')
| -rw-r--r-- | queries/rust/highlights.scm | 44 | ||||
| -rw-r--r-- | queries/rust/injections.scm | 12 |
2 files changed, 52 insertions, 4 deletions
diff --git a/queries/rust/highlights.scm b/queries/rust/highlights.scm index c202206ca..f4d058efa 100644 --- a/queries/rust/highlights.scm +++ b/queries/rust/highlights.scm @@ -475,3 +475,47 @@ (block_comment (doc_comment)) @comment.documentation + +(call_expression + function: (scoped_identifier + path: (identifier) @_regex + (#any-of? @_regex "Regex" "ByteRegexBuilder") + name: (identifier) @_new + (#eq? @_new "new")) + arguments: (arguments + (raw_string_literal + (string_content) @string.regexp))) + +(call_expression + function: (scoped_identifier + path: (scoped_identifier + (identifier) @_regex + (#any-of? @_regex "Regex" "ByteRegexBuilder") .) + name: (identifier) @_new + (#eq? @_new "new")) + arguments: (arguments + (raw_string_literal + (string_content) @string.regexp))) + +(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) @string.regexp)))) + +(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) @string.regexp)))) diff --git a/queries/rust/injections.scm b/queries/rust/injections.scm index c8c360199..d8aa98245 100644 --- a/queries/rust/injections.scm +++ b/queries/rust/injections.scm @@ -49,7 +49,8 @@ name: (identifier) @_new (#eq? @_new "new")) arguments: (arguments - (raw_string_literal) @injection.content) + (raw_string_literal + (string_content) @injection.content)) (#set! injection.language "regex")) (call_expression @@ -60,7 +61,8 @@ name: (identifier) @_new (#eq? @_new "new")) arguments: (arguments - (raw_string_literal) @injection.content) + (raw_string_literal + (string_content) @injection.content)) (#set! injection.language "regex")) (call_expression @@ -71,7 +73,8 @@ (#eq? @_new "new")) arguments: (arguments (array_expression - (raw_string_literal) @injection.content)) + (raw_string_literal + (string_content) @injection.content))) (#set! injection.language "regex")) (call_expression @@ -83,7 +86,8 @@ (#eq? @_new "new")) arguments: (arguments (array_expression - (raw_string_literal) @injection.content)) + (raw_string_literal + (string_content) @injection.content))) (#set! injection.language "regex")) ((block_comment) @injection.content |
