aboutsummaryrefslogtreecommitdiffstats
path: root/runtime/queries/wxml/highlights.scm
diff options
context:
space:
mode:
authorBlockLune <39331194+BlockLune@users.noreply.github.com>2025-08-30 00:30:18 +0800
committerGitHub <noreply@github.com>2025-08-29 18:30:18 +0200
commitcd64fd3f448eb6cc529830c7f265f7584168572b (patch)
treea017d25a103291d0e05b914486ac7d346a6ad341 /runtime/queries/wxml/highlights.scm
parentfeat(matlab)!: update parser and queries (diff)
downloadnvim-treesitter-cd64fd3f448eb6cc529830c7f265f7584168572b.tar
nvim-treesitter-cd64fd3f448eb6cc529830c7f265f7584168572b.tar.gz
nvim-treesitter-cd64fd3f448eb6cc529830c7f265f7584168572b.tar.bz2
nvim-treesitter-cd64fd3f448eb6cc529830c7f265f7584168572b.tar.lz
nvim-treesitter-cd64fd3f448eb6cc529830c7f265f7584168572b.tar.xz
nvim-treesitter-cd64fd3f448eb6cc529830c7f265f7584168572b.tar.zst
nvim-treesitter-cd64fd3f448eb6cc529830c7f265f7584168572b.zip
feat(wxml): add parser and queries
Diffstat (limited to 'runtime/queries/wxml/highlights.scm')
-rw-r--r--runtime/queries/wxml/highlights.scm66
1 files changed, 66 insertions, 0 deletions
diff --git a/runtime/queries/wxml/highlights.scm b/runtime/queries/wxml/highlights.scm
new file mode 100644
index 000000000..5bdbd5d50
--- /dev/null
+++ b/runtime/queries/wxml/highlights.scm
@@ -0,0 +1,66 @@
+; Comments
+(comment) @comment @spell
+
+; Text
+(text) @spell
+
+; Tag names
+(tag_name) @tag
+
+((tag_name) @tag.builtin
+ (#any-of? @tag.builtin "wxs" "template" "import" "include" "slot" "block"))
+
+; Attributes
+(attribute_name) @tag.attribute
+
+(attribute_value) @string
+
+(quoted_attribute_value) @string
+
+; WeChat specific attributes
+((attribute_name) @keyword.directive
+ (#lua-match? @keyword.directive "^wx:"))
+
+((attribute_name) @keyword.conditional
+ (#any-of? @keyword.conditional "wx:if" "wx:elif" "wx:else"))
+
+((attribute_name) @keyword.repeat
+ (#any-of? @keyword.repeat "wx:for" "wx:for-index" "wx:for-item"))
+
+((attribute_name) @keyword
+ (#lua-match? @keyword "^bind"))
+
+((attribute_name) @keyword
+ (#lua-match? @keyword "^catch"))
+
+((attribute_name) @keyword
+ (#lua-match? @keyword "^mut%-bind"))
+
+((attribute_name) @keyword
+ (#lua-match? @keyword "^model:"))
+
+((attribute_name) @keyword
+ (#lua-match? @keyword "^data-"))
+
+((attribute
+ (attribute_name) @_attr
+ (quoted_attribute_value) @string.special.url)
+ (#any-of? @_attr "href" "src")
+ (#offset! @string.special.url 0 1 0 -1))
+
+; Entity references
+(entity) @character.special
+
+; Interpolation delimiters
+(interpolation_start) @punctuation.special
+
+(interpolation_end) @punctuation.special
+
+[
+ "<"
+ ">"
+ "</"
+ "/>"
+] @tag.delimiter
+
+"=" @operator