diff --git a/extension.toml b/extension.toml index 91f82a9..a80aeaf 100644 --- a/extension.toml +++ b/extension.toml @@ -12,6 +12,10 @@ repository = "https://github.com/zed-extensions/java" repository = "https://github.com/tree-sitter/tree-sitter-java" commit = "94703d5a6bed02b98e438d7cad1136c01a60ba2c" +[grammars.doxygen] +repository = "https://github.com/da-r-k/tree-sitter-doxygen" +commit = "4523f899192571744a9bb064c69594a157fa4a7d" + [grammars.properties] repository = "https://github.com/tree-sitter-grammars/tree-sitter-properties" commit = "579b62f5ad8d96c2bb331f07d1408c92767531d9" diff --git a/languages/doxygen/config.toml b/languages/doxygen/config.toml new file mode 100644 index 0000000..a3fdf40 --- /dev/null +++ b/languages/doxygen/config.toml @@ -0,0 +1,9 @@ +name = "Doxygen" +grammar = "doxygen" +autoclose_before = "]})>" +brackets = [ + { start = "{", end = "}", close = true, newline = false }, + { start = "[", end = "]", close = true, newline = false }, + { start = "(", end = ")", close = true, newline = false }, +] +hidden = true diff --git a/languages/doxygen/highlights.scm b/languages/doxygen/highlights.scm new file mode 100644 index 0000000..5320f87 --- /dev/null +++ b/languages/doxygen/highlights.scm @@ -0,0 +1,33 @@ +((tag_name) @keyword + (#any-of? @keyword + "@param" "@return" "@returns" "@throws" "@exception" + "@see" "@since" "@version" "@author" "@deprecated" + "@serial" "@serialField" "@serialData" + "@link" "@linkplain" "@value" "@literal" "@code" + "@inheritDoc" "@docRoot" "@hidden" "@index" + "@provides" "@uses" "@implSpec" "@implNote" "@apiNote") + (#set! "priority" 105)) + +((tag + (tag_name) @_param + (identifier) @variable.parameter) + (#any-of? @_param "@param")) + +(function (identifier) @function) + +(function_link) @function + +[ + "" + "" +] @tag + +[ + "@code" + "@endcode" +] @keyword + +(code_block_language) @label + +["(" ")" "{" "}" "[" "]"] @punctuation.bracket diff --git a/languages/doxygen/injections.scm b/languages/doxygen/injections.scm new file mode 100644 index 0000000..91838f0 --- /dev/null +++ b/languages/doxygen/injections.scm @@ -0,0 +1,7 @@ +((code_block + (code_block_language) @injection.language + (code_block_content) @injection.content)) + +((code_block + (code_block_content) @injection.content) + (#set! injection.language "java")) diff --git a/languages/java/injections.scm b/languages/java/injections.scm index 8113bea..e8978d0 100644 --- a/languages/java/injections.scm +++ b/languages/java/injections.scm @@ -5,7 +5,7 @@ (#set! injection.language "comment")) ((block_comment) @injection.content - (#lua-match? @injection.content "/[*][!<*][^a-zA-Z]") + (#match? @injection.content "^/\\*\\*[^*]") (#set! injection.language "doxygen")) ((method_invocation