aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSantos Gallegos <stsewd@protonmail.com>2021-03-12 11:21:46 -0500
committerGitHub <noreply@github.com>2021-03-12 11:21:46 -0500
commite4083fc8e11e6585f53d62eb71778cc2af464fad (patch)
tree347c6f8cd36ce9d786c817697e8ac59c0a6bd4a5
parentchore: create ecma base for use in js and ts which fixes jsx issues (diff)
downloadnvim-treesitter-e4083fc8e11e6585f53d62eb71778cc2af464fad.tar
nvim-treesitter-e4083fc8e11e6585f53d62eb71778cc2af464fad.tar.gz
nvim-treesitter-e4083fc8e11e6585f53d62eb71778cc2af464fad.tar.bz2
nvim-treesitter-e4083fc8e11e6585f53d62eb71778cc2af464fad.tar.lz
nvim-treesitter-e4083fc8e11e6585f53d62eb71778cc2af464fad.tar.xz
nvim-treesitter-e4083fc8e11e6585f53d62eb71778cc2af464fad.tar.zst
nvim-treesitter-e4083fc8e11e6585f53d62eb71778cc2af464fad.zip
Add comment parser to highlight comment tags (#893)
Closes #236
-rw-r--r--CONTRIBUTING.md4
-rw-r--r--README.md1
-rw-r--r--doc/nvim-treesitter.txt19
-rw-r--r--lockfile.json3
-rw-r--r--lua/nvim-treesitter/highlight.lua4
-rw-r--r--lua/nvim-treesitter/parsers.lua8
-rw-r--r--plugin/nvim-treesitter.vim4
-rw-r--r--queries/bash/injections.scm1
-rw-r--r--queries/c/injections.scm2
-rw-r--r--queries/c_sharp/injections.scm1
-rw-r--r--queries/clojure/injections.scm1
-rw-r--r--queries/comment/highlights.scm19
-rw-r--r--queries/cpp/injections.scm2
-rw-r--r--queries/css/injections.scm1
-rw-r--r--queries/dart/injections.scm1
-rw-r--r--queries/devicetree/injections.scm1
-rw-r--r--queries/fennel/injections.scm1
-rw-r--r--queries/gdscript/injections.scm1
-rw-r--r--queries/go/injections.scm1
-rw-r--r--queries/graphql/injections.scm1
-rw-r--r--queries/html/injections.scm2
-rw-r--r--queries/java/injections.scm1
-rw-r--r--queries/jsonc/injections.scm1
-rw-r--r--queries/julia/injections.scm2
-rw-r--r--queries/kotlin/injections.scm1
-rw-r--r--queries/ledger/injections.scm1
-rw-r--r--queries/lua/injections.scm2
-rw-r--r--queries/nix/injections.scm1
-rw-r--r--queries/ocaml/injections.scm1
-rw-r--r--queries/ocaml_interface/injections.scm1
-rw-r--r--queries/ocamllex/injections.scm4
-rw-r--r--queries/php/injections.scm4
-rw-r--r--queries/python/injections.scm2
-rw-r--r--queries/ql/injections.scm5
-rw-r--r--queries/query/injections.scm2
-rw-r--r--queries/rst/injections.scm2
-rw-r--r--queries/ruby/injections.scm1
-rw-r--r--queries/rust/injections.scm5
-rw-r--r--queries/sparql/injections.scm1
-rw-r--r--queries/supercollider/injections.scm4
-rw-r--r--queries/svelte/injections.scm2
-rw-r--r--queries/teal/injections.scm2
-rw-r--r--queries/toml/injections.scm1
-rw-r--r--queries/turtle/injections.scm1
-rw-r--r--queries/verilog/injections.scm1
-rw-r--r--queries/vue/injections.scm2
-rw-r--r--queries/yaml/injections.scm1
47 files changed, 126 insertions, 3 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 1fbbb8bd4..53d3ab171 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -167,6 +167,10 @@ Mainly for markup languages.
@text.title
@text.literal
@text.uri
+
+@text.note
+@text.warning
+@text.danger
```
#### Tags
diff --git a/README.md b/README.md
index e29d867c1..7413ceea9 100644
--- a/README.md
+++ b/README.md
@@ -136,6 +136,7 @@ We are looking for maintainers to add more parsers and to write query files for
- [x] [c](https://github.com/tree-sitter/tree-sitter-c) (maintained by @vigoux)
- [x] [c_sharp](https://github.com/tree-sitter/tree-sitter-c-sharp) (maintained by @svermeulen)
- [x] [clojure](https://github.com/sogaiu/tree-sitter-clojure) (maintained by @sogaiu)
+- [x] [comment](https://github.com/stsewd/tree-sitter-comment) (maintained by @stsewd)
- [x] [cpp](https://github.com/tree-sitter/tree-sitter-cpp) (maintained by @theHamsta)
- [x] [css](https://github.com/tree-sitter/tree-sitter-css) (maintained by @TravonteD)
- [x] [dart](https://github.com/UserNobody14/tree-sitter-dart) (maintained by @Akin909)
diff --git a/doc/nvim-treesitter.txt b/doc/nvim-treesitter.txt
index 6ad57eef9..b5d214ba1 100644
--- a/doc/nvim-treesitter.txt
+++ b/doc/nvim-treesitter.txt
@@ -514,7 +514,7 @@ TODO: docs
`TSNumber`
*hl-TSNumber*
-For all numbers
+For all numbers
`TSOperator`
*hl-TSOperator*
@@ -576,6 +576,11 @@ Tag delimiter like `<` `>` `/`
*hl-TSText*
For strings considered text in a markup language.
+`TSStrong`
+ *hl-TSSTrong*
+
+For text to be represented in bold.
+
`TSEmphasis`
*hl-TSEmphasis*
For text to be represented with emphasis.
@@ -600,6 +605,18 @@ Literal text.
*hl-TSURI*
Any URI like a link or email.
+`TSNote`
+ *hl-TSNote*
+Text representation of an informational note.
+
+`TSWarning`
+ *TSWarning*
+Text representation of a warning note.
+
+`TSDanger`
+ *TSDanger*
+Text representation of a danger note.
+
`TSType`
*hl-TSType*
For types.
diff --git a/lockfile.json b/lockfile.json
index 585c4f37a..2dca7301b 100644
--- a/lockfile.json
+++ b/lockfile.json
@@ -11,6 +11,9 @@
"clojure": {
"revision": "f09652f095be878df8a87a57dcbfa07094316253"
},
+ "comment": {
+ "revision": "6b0dbd56284023617c3ea755624e55d0254f813a"
+ },
"cpp": {
"revision": "3bfe046f3967fef92ebb33f8cd58c3ff373d5e56"
},
diff --git a/lua/nvim-treesitter/highlight.lua b/lua/nvim-treesitter/highlight.lua
index a0c6ee61b..8db1a3ab3 100644
--- a/lua/nvim-treesitter/highlight.lua
+++ b/lua/nvim-treesitter/highlight.lua
@@ -85,6 +85,10 @@ hlmap["text.title"] = "TSTitle"
hlmap["text.literal"] = "TSLiteral"
hlmap["text.uri"] = "TSURI"
+hlmap["text.note"] = "TSNote"
+hlmap["text.warning"] = "TSWarning"
+hlmap["text.danger"] = "TSDanger"
+
hlmap["type"] = "TSType"
hlmap["type.builtin"] = "TSTypeBuiltin"
diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua
index 8ce9552f5..a1727fc10 100644
--- a/lua/nvim-treesitter/parsers.lua
+++ b/lua/nvim-treesitter/parsers.lua
@@ -403,6 +403,14 @@ list.regex = {
maintainers = {"@theHamsta"},
}
+list.comment = {
+ install_info = {
+ url = "https://github.com/stsewd/tree-sitter-comment",
+ files = { "src/parser.c", "src/scanner.c" },
+ },
+ maintainers = {"@stsewd"},
+}
+
list.jsdoc = {
install_info = {
url = "https://github.com/tree-sitter/tree-sitter-jsdoc",
diff --git a/plugin/nvim-treesitter.vim b/plugin/nvim-treesitter.vim
index 571f2945e..6a2fe838b 100644
--- a/plugin/nvim-treesitter.vim
+++ b/plugin/nvim-treesitter.vim
@@ -80,5 +80,9 @@ highlight default link TSTitle Title
highlight default link TSLiteral String
highlight default link TSURI Underlined
+highlight default link TSNote SpecialComment
+highlight default link TSWarning Todo
+highlight default link TSDanger WarningMsg
+
highlight default link TSTag Label
highlight default link TSTagDelimiter Delimiter
diff --git a/queries/bash/injections.scm b/queries/bash/injections.scm
new file mode 100644
index 000000000..4bb7d675d
--- /dev/null
+++ b/queries/bash/injections.scm
@@ -0,0 +1 @@
+(comment) @comment
diff --git a/queries/c/injections.scm b/queries/c/injections.scm
index ec3274e6c..afeb068a2 100644
--- a/queries/c/injections.scm
+++ b/queries/c/injections.scm
@@ -1 +1,3 @@
(preproc_arg) @c
+
+(comment) @comment
diff --git a/queries/c_sharp/injections.scm b/queries/c_sharp/injections.scm
new file mode 100644
index 000000000..4bb7d675d
--- /dev/null
+++ b/queries/c_sharp/injections.scm
@@ -0,0 +1 @@
+(comment) @comment
diff --git a/queries/clojure/injections.scm b/queries/clojure/injections.scm
new file mode 100644
index 000000000..4bb7d675d
--- /dev/null
+++ b/queries/clojure/injections.scm
@@ -0,0 +1 @@
+(comment) @comment
diff --git a/queries/comment/highlights.scm b/queries/comment/highlights.scm
new file mode 100644
index 000000000..3a8e1d49d
--- /dev/null
+++ b/queries/comment/highlights.scm
@@ -0,0 +1,19 @@
+[
+ "("
+ ")"
+] @punctuation.bracket
+
+":" @punctuation.delimiter
+
+(tag (name) @text.note (user)? @constant)
+
+((tag ((name) @text.warning))
+ (#match? @text.warning "^(TODO|HACK|WARNING)$"))
+
+((tag ((name) @text.danger))
+ (#match? @text.danger "^(FIXME|XXX|BUG)$"))
+
+; Issue number (#123)
+("text" @number (#match? @number "^#[0-9]+$"))
+; User mention (@user)
+("text" @constant (#match? @constant "^[@][a-zA-Z0-9_-]+$"))
diff --git a/queries/cpp/injections.scm b/queries/cpp/injections.scm
index baaabc87d..13842120d 100644
--- a/queries/cpp/injections.scm
+++ b/queries/cpp/injections.scm
@@ -1 +1,3 @@
(preproc_arg) @cpp
+
+(comment) @comment
diff --git a/queries/css/injections.scm b/queries/css/injections.scm
new file mode 100644
index 000000000..4bb7d675d
--- /dev/null
+++ b/queries/css/injections.scm
@@ -0,0 +1 @@
+(comment) @comment
diff --git a/queries/dart/injections.scm b/queries/dart/injections.scm
new file mode 100644
index 000000000..4bb7d675d
--- /dev/null
+++ b/queries/dart/injections.scm
@@ -0,0 +1 @@
+(comment) @comment
diff --git a/queries/devicetree/injections.scm b/queries/devicetree/injections.scm
new file mode 100644
index 000000000..4bb7d675d
--- /dev/null
+++ b/queries/devicetree/injections.scm
@@ -0,0 +1 @@
+(comment) @comment
diff --git a/queries/fennel/injections.scm b/queries/fennel/injections.scm
new file mode 100644
index 000000000..4bb7d675d
--- /dev/null
+++ b/queries/fennel/injections.scm
@@ -0,0 +1 @@
+(comment) @comment
diff --git a/queries/gdscript/injections.scm b/queries/gdscript/injections.scm
new file mode 100644
index 000000000..4bb7d675d
--- /dev/null
+++ b/queries/gdscript/injections.scm
@@ -0,0 +1 @@
+(comment) @comment
diff --git a/queries/go/injections.scm b/queries/go/injections.scm
new file mode 100644
index 000000000..4bb7d675d
--- /dev/null
+++ b/queries/go/injections.scm
@@ -0,0 +1 @@
+(comment) @comment
diff --git a/queries/graphql/injections.scm b/queries/graphql/injections.scm
new file mode 100644
index 000000000..4bb7d675d
--- /dev/null
+++ b/queries/graphql/injections.scm
@@ -0,0 +1 @@
+(comment) @comment
diff --git a/queries/html/injections.scm b/queries/html/injections.scm
index 01bc1a59c..682431195 100644
--- a/queries/html/injections.scm
+++ b/queries/html/injections.scm
@@ -8,3 +8,5 @@
((script_element
(raw_text) @javascript))
+
+(comment) @comment
diff --git a/queries/java/injections.scm b/queries/java/injections.scm
new file mode 100644
index 000000000..4bb7d675d
--- /dev/null
+++ b/queries/java/injections.scm
@@ -0,0 +1 @@
+(comment) @comment
diff --git a/queries/jsonc/injections.scm b/queries/jsonc/injections.scm
new file mode 100644
index 000000000..4bb7d675d
--- /dev/null
+++ b/queries/jsonc/injections.scm
@@ -0,0 +1 @@
+(comment) @comment
diff --git a/queries/julia/injections.scm b/queries/julia/injections.scm
index da13ff448..5ae30dfa7 100644
--- a/queries/julia/injections.scm
+++ b/queries/julia/injections.scm
@@ -1,2 +1,4 @@
((triple_string) @markdown
(#offset! @markdown 0 3 0 -3))
+
+(comment) @comment
diff --git a/queries/kotlin/injections.scm b/queries/kotlin/injections.scm
new file mode 100644
index 000000000..4bb7d675d
--- /dev/null
+++ b/queries/kotlin/injections.scm
@@ -0,0 +1 @@
+(comment) @comment
diff --git a/queries/ledger/injections.scm b/queries/ledger/injections.scm
new file mode 100644
index 000000000..4bb7d675d
--- /dev/null
+++ b/queries/ledger/injections.scm
@@ -0,0 +1 @@
+(comment) @comment
diff --git a/queries/lua/injections.scm b/queries/lua/injections.scm
index fe023e0ef..7bca11bb8 100644
--- a/queries/lua/injections.scm
+++ b/queries/lua/injections.scm
@@ -8,3 +8,5 @@
(#eq? @_cdef_identifier "cdef")
)
+
+(comment) @comment
diff --git a/queries/nix/injections.scm b/queries/nix/injections.scm
new file mode 100644
index 000000000..4bb7d675d
--- /dev/null
+++ b/queries/nix/injections.scm
@@ -0,0 +1 @@
+(comment) @comment
diff --git a/queries/ocaml/injections.scm b/queries/ocaml/injections.scm
new file mode 100644
index 000000000..4bb7d675d
--- /dev/null
+++ b/queries/ocaml/injections.scm
@@ -0,0 +1 @@
+(comment) @comment
diff --git a/queries/ocaml_interface/injections.scm b/queries/ocaml_interface/injections.scm
new file mode 100644
index 000000000..6d3dfbcf2
--- /dev/null
+++ b/queries/ocaml_interface/injections.scm
@@ -0,0 +1 @@
+; inherits: ocaml
diff --git a/queries/ocamllex/injections.scm b/queries/ocamllex/injections.scm
index be5d87692..337d8073e 100644
--- a/queries/ocamllex/injections.scm
+++ b/queries/ocamllex/injections.scm
@@ -1 +1,3 @@
-((ocaml) @ocaml)
+(ocaml) @ocaml
+
+(comment) @comment
diff --git a/queries/php/injections.scm b/queries/php/injections.scm
index bdd72bb2b..8683d6cec 100644
--- a/queries/php/injections.scm
+++ b/queries/php/injections.scm
@@ -1 +1,3 @@
-((text) @html)
+(text) @html
+
+(comment) @comment
diff --git a/queries/python/injections.scm b/queries/python/injections.scm
index de108262d..197e725e5 100644
--- a/queries/python/injections.scm
+++ b/queries/python/injections.scm
@@ -22,3 +22,5 @@
; Attribute docstring
(((expression_statement (assignment)) . (expression_statement (string) @rst))
(#offset! @rst 0 3 0 -3))
+
+(comment) @comment
diff --git a/queries/ql/injections.scm b/queries/ql/injections.scm
new file mode 100644
index 000000000..88d49d424
--- /dev/null
+++ b/queries/ql/injections.scm
@@ -0,0 +1,5 @@
+[
+ (line_comment)
+ (block_comment)
+ (qldoc)
+] @comment
diff --git a/queries/query/injections.scm b/queries/query/injections.scm
index 0e440b134..95ce2978f 100644
--- a/queries/query/injections.scm
+++ b/queries/query/injections.scm
@@ -2,3 +2,5 @@
name: (identifier) @_name
parameters: (parameters (string) @regex))
(#match? @_name "^#?(not-)?(match|vim-match|lua-match)$"))
+
+(comment) @comment
diff --git a/queries/rst/injections.scm b/queries/rst/injections.scm
index 475ad2f4c..6d62550ad 100644
--- a/queries/rst/injections.scm
+++ b/queries/rst/injections.scm
@@ -58,3 +58,5 @@
"interpreted_text" @latex
(role) @_role)
(#eq? @_role ":math:"))
+
+(comment) @comment
diff --git a/queries/ruby/injections.scm b/queries/ruby/injections.scm
new file mode 100644
index 000000000..4bb7d675d
--- /dev/null
+++ b/queries/ruby/injections.scm
@@ -0,0 +1 @@
+(comment) @comment
diff --git a/queries/rust/injections.scm b/queries/rust/injections.scm
index 93cd0a698..b1e90e09a 100644
--- a/queries/rust/injections.scm
+++ b/queries/rust/injections.scm
@@ -5,3 +5,8 @@
(macro_rule
left: (token_tree_pattern) @rust
right: (token_tree) @rust))
+
+[
+ (line_comment)
+ (block_comment)
+] @comment
diff --git a/queries/sparql/injections.scm b/queries/sparql/injections.scm
new file mode 100644
index 000000000..4bb7d675d
--- /dev/null
+++ b/queries/sparql/injections.scm
@@ -0,0 +1 @@
+(comment) @comment
diff --git a/queries/supercollider/injections.scm b/queries/supercollider/injections.scm
new file mode 100644
index 000000000..e48ce9af3
--- /dev/null
+++ b/queries/supercollider/injections.scm
@@ -0,0 +1,4 @@
+[
+ (line_comment)
+ (block_comment)
+] @comment
diff --git a/queries/svelte/injections.scm b/queries/svelte/injections.scm
index 01c3bcc52..bbc301bd7 100644
--- a/queries/svelte/injections.scm
+++ b/queries/svelte/injections.scm
@@ -19,3 +19,5 @@
(raw_text) @typescript)
(#match? @_lang "(ts|typescript)")
)
+
+(comment) @comment
diff --git a/queries/teal/injections.scm b/queries/teal/injections.scm
index 120d12916..c61f7d573 100644
--- a/queries/teal/injections.scm
+++ b/queries/teal/injections.scm
@@ -8,3 +8,5 @@
(#eq? @_cdef_identifier "cdef")
)
+
+(comment) @comment
diff --git a/queries/toml/injections.scm b/queries/toml/injections.scm
new file mode 100644
index 000000000..4bb7d675d
--- /dev/null
+++ b/queries/toml/injections.scm
@@ -0,0 +1 @@
+(comment) @comment
diff --git a/queries/turtle/injections.scm b/queries/turtle/injections.scm
new file mode 100644
index 000000000..4bb7d675d
--- /dev/null
+++ b/queries/turtle/injections.scm
@@ -0,0 +1 @@
+(comment) @comment
diff --git a/queries/verilog/injections.scm b/queries/verilog/injections.scm
new file mode 100644
index 000000000..4bb7d675d
--- /dev/null
+++ b/queries/verilog/injections.scm
@@ -0,0 +1 @@
+(comment) @comment
diff --git a/queries/vue/injections.scm b/queries/vue/injections.scm
index 602f4f4f2..9625c4f34 100644
--- a/queries/vue/injections.scm
+++ b/queries/vue/injections.scm
@@ -17,3 +17,5 @@
((interpolation
(raw_text) @javascript))
+
+(comment) @comment
diff --git a/queries/yaml/injections.scm b/queries/yaml/injections.scm
new file mode 100644
index 000000000..4bb7d675d
--- /dev/null
+++ b/queries/yaml/injections.scm
@@ -0,0 +1 @@
+(comment) @comment