Skip to content

Commit

Permalink
add tree-sitter-edoc (#2640)
Browse files Browse the repository at this point in the history
* add tree-sitter-edoc

* fix escape character capture in markdown queries

* add field negation operator "!" to tsq highlights
  • Loading branch information
the-mikedavis authored Jun 2, 2022
1 parent 4f3d0a7 commit 42d780b
Show file tree
Hide file tree
Showing 7 changed files with 88 additions and 4 deletions.
1 change: 1 addition & 0 deletions book/src/generated/lang-support.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
| dart || || `dart` |
| devicetree || || |
| dockerfile || | | `docker-langserver` |
| edoc || | | |
| eex || | | |
| ejs || | | |
| elixir || | | `elixir-ls` |
Expand Down
14 changes: 13 additions & 1 deletion languages.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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" }
50 changes: 50 additions & 0 deletions runtime/queries/edoc/highlights.scm
Original file line number Diff line number Diff line change
@@ -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
20 changes: 20 additions & 0 deletions runtime/queries/edoc/injections.scm
Original file line number Diff line number Diff line change
@@ -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))
4 changes: 2 additions & 2 deletions runtime/queries/erlang/injections.scm
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
((comment) @injection.content
(#set! injection.language "comment"))
((comment_content) @injection.content
(#set! injection.language "edoc"))
2 changes: 1 addition & 1 deletion runtime/queries/markdown/highlights.scm
Original file line number Diff line number Diff line change
Expand Up @@ -45,5 +45,5 @@
[
(backslash_escape)
(hard_line_break)
] @string.character.escape
] @constant.character.escape

1 change: 1 addition & 0 deletions runtime/queries/tsq/highlights.scm
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
] @punctuation.bracket

":" @punctuation.delimiter
"!" @operator

[
(one_or_more)
Expand Down

0 comments on commit 42d780b

Please sign in to comment.