aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSantos Gallegos <stsewd@proton.me>2023-02-13 03:43:26 -0500
committerGitHub <noreply@github.com>2023-02-13 09:43:26 +0100
commit1ec36fdcd567ee97e77fbaec29c3f8145d51e72c (patch)
tree5b20e5502f6a80d54115a67cd96a0a1ec5c227bd
parentproperly replace deprecated tsutils functions (diff)
downloadnvim-treesitter-1ec36fdcd567ee97e77fbaec29c3f8145d51e72c.tar
nvim-treesitter-1ec36fdcd567ee97e77fbaec29c3f8145d51e72c.tar.gz
nvim-treesitter-1ec36fdcd567ee97e77fbaec29c3f8145d51e72c.tar.bz2
nvim-treesitter-1ec36fdcd567ee97e77fbaec29c3f8145d51e72c.tar.lz
nvim-treesitter-1ec36fdcd567ee97e77fbaec29c3f8145d51e72c.tar.xz
nvim-treesitter-1ec36fdcd567ee97e77fbaec29c3f8145d51e72c.tar.zst
nvim-treesitter-1ec36fdcd567ee97e77fbaec29c3f8145d51e72c.zip
comment(highlights): reduce false positives (#4298)
There are a couple cases where the comment highlights will match things that aren't necessary a tag. For example in Rust, when commenting a block that deals with generics (generics are declared as `T: Type`), this may be distracting. So, instead of highlighting all tags, we can restrict to highlighting the explicit keywords. Ref https://github.com/stsewd/tree-sitter-comment/issues/14
-rw-r--r--queries/comment/highlights.scm37
1 files changed, 19 insertions, 18 deletions
diff --git a/queries/comment/highlights.scm b/queries/comment/highlights.scm
index 66bc99cc7..6466a4783 100644
--- a/queries/comment/highlights.scm
+++ b/queries/comment/highlights.scm
@@ -1,36 +1,37 @@
(_) @spell
-[
- "("
- ")"
-] @punctuation.bracket
-
-":" @punctuation.delimiter
-
-(tag
+((tag
(name) @text.todo
- (user)? @constant)
-
-((tag ((name) @text.todo))
- (#eq? @text.todo "TODO"))
+ ("(" @punctuation.bracket (user) @constant ")" @punctuation.bracket)?
+ ":" @punctuation.delimiter)
+ (#eq? @text.todo "TODO"))
("text" @text.todo
(#eq? @text.todo "TODO"))
-((tag ((name) @text.note))
- (#any-of? @text.note "NOTE" "XXX"))
+((tag
+ (name) @text.note
+ ("(" @punctuation.bracket (user) @constant ")" @punctuation.bracket)?
+ ":" @punctuation.delimiter)
+ (#any-of? @text.note "NOTE" "XXX"))
("text" @text.note
(#any-of? @text.note "NOTE" "XXX"))
-((tag ((name) @text.warning))
- (#any-of? @text.warning "HACK" "WARNING"))
+((tag
+ (name) @text.warning
+ ("(" @punctuation.bracket (user) @constant ")" @punctuation.bracket)?
+ ":" @punctuation.delimiter)
+ (#any-of? @text.warning "HACK" "WARNING"))
("text" @text.warning
(#any-of? @text.warning "HACK" "WARNING"))
-((tag ((name) @text.danger))
- (#any-of? @text.danger "FIXME" "BUG"))
+((tag
+ (name) @text.danger
+ ("(" @punctuation.bracket (user) @constant ")" @punctuation.bracket)?
+ ":" @punctuation.delimiter)
+ (#any-of? @text.danger "FIXME" "BUG"))
("text" @text.danger
(#any-of? @text.danger "FIXME" "BUG"))