add tree-sitter-edoc (#2640)

* add tree-sitter-edoc

* fix escape character capture in markdown queries

* add field negation operator "!" to tsq highlights
This commit is contained in:
Michael Davis 2022-06-02 18:41:17 -05:00 committed by GitHub
parent 4f3d0a7706
commit 42d780b103
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 88 additions and 4 deletions

View file

@ -12,6 +12,7 @@
| dart | ✓ | | ✓ | `dart` |
| devicetree | ✓ | | ✓ | |
| dockerfile | ✓ | | | `docker-langserver` |
| edoc | ✓ | | | |
| eex | ✓ | | | |
| ejs | ✓ | | | |
| elixir | ✓ | | | `elixir-ls` |

View file

@ -1049,7 +1049,7 @@ language-server = { command = "erlang_ls" }
[[grammar]]
name = "erlang"
source = { git = "https://github.com/the-mikedavis/tree-sitter-erlang", rev = "6cd8f956ada445b277de1581b5328ae8e8be9aac" }
source = { git = "https://github.com/the-mikedavis/tree-sitter-erlang", rev = "481e7f8ddf27f07a47d1531b6e2b154b89ece31d" }
[[language]]
name = "kotlin"
@ -1409,3 +1409,15 @@ injection-regex = "verilog"
[[grammar]]
name = "verilog"
source = { git = "https://github.com/andreytkachenko/tree-sitter-verilog", rev = "514d8d70593d29ef3ef667fa6b0e504ae7c977e3" }
[[language]]
name = "edoc"
scope = "source.edoc"
file-types = ["edoc", "edoc.in"]
injection-regex = "edoc"
roots = []
indent = { tab-width = 4, unit = " " }
[[grammar]]
name = "edoc"
source = { git = "https://github.com/the-mikedavis/tree-sitter-edoc", rev = "1691ec0aa7ad1ed9fa295590545f27e570d12d60" }

View file

@ -0,0 +1,50 @@
((section
(section_marker) @markup.heading.marker
(section_content) @markup.heading.1
(section_marker) @markup.heading.marker)
(#eq? @markup.heading.marker "=="))
((section
(section_marker) @markup.heading.marker
(section_content) @markup.heading.2
(section_marker) @markup.heading.marker)
(#eq? @markup.heading.marker "==="))
((section
(section_marker) @markup.heading.marker
(section_content) @markup.heading.3
(section_marker) @markup.heading.marker)
(#eq? @markup.heading.marker "===="))
(macro (tag) @function.macro)
(tag) @keyword
(macro_escape) @constant.character.escape
(inline_quote) @markup.raw.inline
(email_address) @markup.link.url
(em_xhtml_tag
(open_xhtml_tag) @tag
(xhtml_tag_content) @markup.italic
(close_xhtml_tag) @tag)
(strong_xhtml_tag
(open_xhtml_tag) @tag
(xhtml_tag_content) @markup.bold
(close_xhtml_tag) @tag)
(module) @namespace
(function) @function
(type) @type
; could be @constant.numeric.integer but this looks similar to a capture
(arity) @operator
[":" "/"] @operator
["(" ")"] @punctuation.delimiter
["{" "}"] @function.macro
[
(quote_marker)
(language_identifier)
(quote_content)
] @markup.raw.block

View file

@ -0,0 +1,20 @@
((xhtml_tag) @injection.content
(#set! injection.combined)
(#set! injection.include-children)
(#set! injection.language "html"))
((block_quote
!language
(quote_content) @injection.content)
(#set! injection.language "erlang"))
(block_quote
language: (language_identifier) @injection.language
(quote_content) @injection.content)
((macro
(tag) @_tag
(argument) @injection.content)
(#eq? @_tag "@type")
(#set injection.language "erlang")
(#set injection.include-children))

View file

@ -1,2 +1,2 @@
((comment) @injection.content
(#set! injection.language "comment"))
((comment_content) @injection.content
(#set! injection.language "edoc"))

View file

@ -45,5 +45,5 @@
[
(backslash_escape)
(hard_line_break)
] @string.character.escape
] @constant.character.escape

View file

@ -16,6 +16,7 @@
] @punctuation.bracket
":" @punctuation.delimiter
"!" @operator
[
(one_or_more)