diff options
| -rw-r--r-- | README.md | 1 | ||||
| -rw-r--r-- | lockfile.json | 3 | ||||
| -rw-r--r-- | lua/nvim-treesitter/parsers.lua | 8 | ||||
| -rw-r--r-- | queries/c/injections.scm | 6 | ||||
| -rw-r--r-- | queries/cpp/injections.scm | 4 | ||||
| -rw-r--r-- | queries/doxygen/highlights.scm | 38 | ||||
| -rw-r--r-- | queries/doxygen/indents.scm | 1 | ||||
| -rw-r--r-- | queries/doxygen/injections.scm | 8 | ||||
| -rw-r--r-- | queries/go/injections.scm | 2 | ||||
| -rw-r--r-- | queries/java/injections.scm | 4 | ||||
| -rw-r--r-- | queries/rust/injections.scm | 2 |
11 files changed, 74 insertions, 3 deletions
@@ -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")) |
