From a4f4fcdd3ef1b36ebdad72741bbd85dd9ef5013e Mon Sep 17 00:00:00 2001 From: Amaan Qureshi Date: Fri, 25 Aug 2023 05:02:58 -0400 Subject: feat: add Doxygen --- queries/c/injections.scm | 6 +++++- queries/cpp/injections.scm | 4 ++++ queries/doxygen/highlights.scm | 38 ++++++++++++++++++++++++++++++++++++++ queries/doxygen/indents.scm | 1 + queries/doxygen/injections.scm | 8 ++++++++ queries/go/injections.scm | 2 +- queries/java/injections.scm | 4 ++++ queries/rust/injections.scm | 2 +- 8 files changed, 62 insertions(+), 3 deletions(-) create mode 100644 queries/doxygen/highlights.scm create mode 100644 queries/doxygen/indents.scm create mode 100644 queries/doxygen/injections.scm (limited to 'queries') 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 + +[ + "" + "" +] @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")) -- cgit v1.2.3-70-g09d2