aboutsummaryrefslogtreecommitdiff
path: root/runtime/queries/heex/highlights.scm
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/queries/heex/highlights.scm')
-rw-r--r--runtime/queries/heex/highlights.scm58
1 files changed, 58 insertions, 0 deletions
diff --git a/runtime/queries/heex/highlights.scm b/runtime/queries/heex/highlights.scm
new file mode 100644
index 00000000..301f57c8
--- /dev/null
+++ b/runtime/queries/heex/highlights.scm
@@ -0,0 +1,58 @@
+; 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 components are highlighted as Elixir modules and functions
+(component_name
+ [
+ (module) @module
+ (function) @function
+ "." @punctuation.delimiter
+ ])