aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md1
-rw-r--r--lockfile.json3
-rw-r--r--lua/nvim-treesitter/parsers.lua8
-rw-r--r--queries/c/injections.scm6
-rw-r--r--queries/cpp/injections.scm4
-rw-r--r--queries/doxygen/highlights.scm38
-rw-r--r--queries/doxygen/indents.scm1
-rw-r--r--queries/doxygen/injections.scm8
-rw-r--r--queries/go/injections.scm2
-rw-r--r--queries/java/injections.scm4
-rw-r--r--queries/rust/injections.scm2
11 files changed, 74 insertions, 3 deletions
diff --git a/README.md b/README.md
index 0001645b1..9cc5b827a 100644
--- a/README.md
+++ b/README.md
@@ -209,6 +209,7 @@ We are looking for maintainers to add more parsers and to write query files for
- [x] [diff](https://github.com/the-mikedavis/tree-sitter-diff) (maintained by @gbprod)
- [x] [dockerfile](https://github.com/camdencheek/tree-sitter-dockerfile) (maintained by @camdencheek)
- [x] [dot](https://github.com/rydesun/tree-sitter-dot) (maintained by @rydesun)
+- [x] [doxygen](https://github.com/amaanq/tree-sitter-doxygen) (maintained by @amaanq)
- [x] [dtd](https://github.com/ObserverOfTime/tree-sitter-xml) (maintained by @ObserverOfTime)
- [x] [ebnf](https://github.com/RubixDev/ebnf) (experimental, maintained by @RubixDev)
- [x] [eex](https://github.com/connorlay/tree-sitter-eex) (maintained by @connorlay)
diff --git a/lockfile.json b/lockfile.json
index cf5cbb51e..de290a220 100644
--- a/lockfile.json
+++ b/lockfile.json
@@ -107,6 +107,9 @@
"dot": {
"revision": "9ab85550c896d8b294d9b9ca1e30698736f08cea"
},
+ "doxygen": {
+ "revision": "19284113dbd42263c13b39d81b2a3b2492022c9b"
+ },
"dtd": {
"revision": "9deacbfb79cb3527a0396255beb17e1bba3f2052"
},
diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua
index 0f0d7b90a..d8ca6abb9 100644
--- a/lua/nvim-treesitter/parsers.lua
+++ b/lua/nvim-treesitter/parsers.lua
@@ -376,6 +376,14 @@ list.dot = {
maintainers = { "@rydesun" },
}
+list.doxygen = {
+ install_info = {
+ url = "https://github.com/amaanq/tree-sitter-doxygen",
+ files = { "src/parser.c", "src/scanner.c" },
+ },
+ maintainers = { "@amaanq" },
+}
+
list.dtd = {
install_info = {
url = "https://github.com/ObserverOfTime/tree-sitter-xml",
diff --git a/queries/c/injections.scm b/queries/c/injections.scm
index f67cd22c6..6b1fc3522 100644
--- a/queries/c/injections.scm
+++ b/queries/c/injections.scm
@@ -5,9 +5,13 @@
(#set! injection.language "comment"))
((comment) @injection.content
- (#match? @injection.content "/\*!([a-zA-Z]+:)?re2c")
+ (#match? @injection.content "/\\*!([a-zA-Z]+:)?re2c")
(#set! injection.language "re2c"))
+((comment) @injection.content
+ (#lua-match? @injection.content "/[*][!<*][^a-zA-Z]")
+ (#set! injection.language "doxygen"))
+
; TODO: add when asm is added
; (gnu_asm_expression assembly_code: (string_literal) @injection.content
; (#set! injection.language "asm"))
diff --git a/queries/cpp/injections.scm b/queries/cpp/injections.scm
index 6b7639b67..75f851367 100644
--- a/queries/cpp/injections.scm
+++ b/queries/cpp/injections.scm
@@ -4,6 +4,10 @@
((comment) @injection.content
(#set! injection.language "comment"))
+((comment) @injection.content
+ (#lua-match? @injection.content "/[*][!<*][^a-zA-Z]")
+ (#set! injection.language "doxygen"))
+
(raw_string_literal
delimiter: (raw_string_delimiter) @injection.language
(raw_string_content) @injection.content)
diff --git a/queries/doxygen/highlights.scm b/queries/doxygen/highlights.scm
new file mode 100644
index 000000000..621199865
--- /dev/null
+++ b/queries/doxygen/highlights.scm
@@ -0,0 +1,38 @@
+((tag_name) @keyword
+ (#set! "priority" 105))
+
+(identifier) @variable
+
+((tag
+ (tag_name) @_param
+ (identifier) @parameter)
+ (#any-of? @_param "@param" "\\param"))
+
+(function (identifier) @function)
+
+(function_link) @function
+
+(emphasis) @text.emphasis
+
+"\\a" @tag
+
+[
+ "in"
+ "out"
+ "inout"
+] @storageclass
+
+"~" @operator
+
+[
+ "<a"
+ ">"
+ "</a>"
+] @tag
+
+[
+ ","
+ "::"
+] @punctuation.delimiter
+
+[ "(" ")" "[" "]" ] @punctuation.bracket
diff --git a/queries/doxygen/indents.scm b/queries/doxygen/indents.scm
new file mode 100644
index 000000000..ef30f1e76
--- /dev/null
+++ b/queries/doxygen/indents.scm
@@ -0,0 +1 @@
+(document) @indent.auto
diff --git a/queries/doxygen/injections.scm b/queries/doxygen/injections.scm
new file mode 100644
index 000000000..1b5ee5858
--- /dev/null
+++ b/queries/doxygen/injections.scm
@@ -0,0 +1,8 @@
+((type) @injection.content
+ (#set! injection.parent))
+
+((function_link) @injection.content
+ (#set! injection.parent))
+
+((link) @injection.content
+ (#set! injection.language "html"))
diff --git a/queries/go/injections.scm b/queries/go/injections.scm
index d44c9897c..affc7a115 100644
--- a/queries/go/injections.scm
+++ b/queries/go/injections.scm
@@ -20,5 +20,5 @@
(#set! injection.language "regex")))
((comment) @injection.content
- (#match? @injection.content "/\*!([a-zA-Z]+:)?re2c")
+ (#match? @injection.content "/\\*!([a-zA-Z]+:)?re2c")
(#set! injection.language "re2c"))
diff --git a/queries/java/injections.scm b/queries/java/injections.scm
index 988d370f0..d79ffa6f1 100644
--- a/queries/java/injections.scm
+++ b/queries/java/injections.scm
@@ -3,3 +3,7 @@
(line_comment)
] @injection.content
(#set! injection.language "comment"))
+
+((block_comment) @injection.content
+ (#lua-match? @injection.content "/[*][!<*][^a-zA-Z]")
+ (#set! injection.language "doxygen"))
diff --git a/queries/rust/injections.scm b/queries/rust/injections.scm
index a8dff4ca5..d3abc13a6 100644
--- a/queries/rust/injections.scm
+++ b/queries/rust/injections.scm
@@ -39,5 +39,5 @@
(#set! injection.language "regex"))
((block_comment) @injection.content
- (#match? @injection.content "/\*!([a-zA-Z]+:)?re2c")
+ (#match? @injection.content "/\\*!([a-zA-Z]+:)?re2c")
(#set! injection.language "re2c"))