helix-mirror/runtime/queries/heex/highlights.scm
Michael Davis e4e8a39bf7 replace module captures with namespace
`module` is undocumented and does not exist in other themes. The
equivalent existing scope based on usage (Elixir for example) is
`namespace`.
2022-07-01 11:04:23 +02:00

62 lines
1.1 KiB
Scheme

; https://github.com/connorlay/tree-sitter-heex/blob/592e22292a367312c35e13de7fdb888f029981d6/queries/highlights.scm
; HEEx delimiters
[
"<!"
"<!--"
"<"
"<%!--"
"<%#"
">"
"</"
"--%>"
"-->"
"/>"
; These could be `@keyword`s but the closing `>` wouldn't be highlighted
; as `@keyword`
"<:"
"</:"
] @punctuation.bracket
; Non-comment or tag delimiters
[
"{"
"}"
"<%"
"<%="
"<%%="
"%>"
] @keyword
; HEEx operators are highlighted as such
"=" @operator
; HEEx inherits the DOCTYPE tag from HTML
(doctype) @constant
; HEEx comments are highlighted as such
(comment) @comment
; HEEx tags are highlighted as HTML
(tag_name) @tag
; HEEx slots are highlighted as atoms (symbols)
(slot_name) @string.special.symbol
; HEEx attributes are highlighted as HTML attributes
(attribute_name) @attribute
[
(attribute_value)
(quoted_attribute_value)
] @string
; HEEx special attributes are keywords
(special_attribute_name) @keyword
; HEEx components are highlighted as Elixir modules and functions
(component_name
[
(module) @namespace
(function) @function
"." @punctuation.delimiter
])