fix(queries): put builtin overrides after catch-all so they win

This commit is contained in:
2026-05-17 06:08:04 +02:00
parent 6f4a0df871
commit 62a5ac203b
+22 -24
View File
@@ -1,20 +1,22 @@
; Punctuation [
"{" @punctuation.bracket "{"
"}" @punctuation.bracket "}"
":" @punctuation.delimiter ] @punctuation.bracket
"-" @punctuation.delimiter
"/" @punctuation.delimiter [
":"
"-"
"/"
] @punctuation.delimiter
"=" @operator "=" @operator
; Block and lang keywords inside their tags: the literal "block" / "lang". [
(block_keyword) @keyword.directive (block_keyword)
(lang_keyword) @keyword.directive (lang_keyword)
] @keyword.directive
; Block names. Known data-block names get @function.builtin; If/IfNot (block_name) @function
; toggles get @keyword.conditional (theme authors may define arbitrary
; If* / IfNot* names via <meta name="if:..."> so we match by prefix).
((block_name) @keyword.conditional
(#match? @keyword.conditional "^[Ii]f([Nn]ot)?[A-Z]"))
((block_name) @function.builtin ((block_name) @function.builtin
(#any-of? @function.builtin (#any-of? @function.builtin
@@ -39,9 +41,12 @@
"Submission" "SubmissionsEnabled" "TagPage" "Tags" "Text" "Thumbnail" "Submission" "SubmissionsEnabled" "TagPage" "Tags" "Text" "Thumbnail"
"Title" "TrackName" "Video" "VideoThumbnail" "VideoThumbnails")) "Title" "TrackName" "Video" "VideoThumbnail" "VideoThumbnails"))
(block_name) @function ; Theme authors invent new If*/IfNot* names via <meta name="if:...">.
((block_name) @keyword.conditional
(#match? @keyword.conditional "^[Ii]f([Nn]ot)?[A-Z]"))
(variable_name) @variable
; Variable names. Known builtins get @variable.builtin, others get @variable.
((variable_name) @variable.builtin ((variable_name) @variable.builtin
(#any-of? @variable.builtin (#any-of? @variable.builtin
"AccentColor" "Album" "AlbumArtURL" "Alt" "AmPm" "Answer" "Answerer" "AccentColor" "Album" "AlbumArtURL" "Alt" "AmPm" "Answer" "Answerer"
@@ -79,22 +84,15 @@
"URLSafeSearchQuery" "URLSafeTag" "Username" "UserNumber" "Video" "URLSafeSearchQuery" "URLSafeTag" "Username" "UserNumber" "Video"
"VideoEmbed" "VideoThumbnailURL" "WeekOfYear" "Year")) "VideoEmbed" "VideoThumbnailURL" "WeekOfYear" "Year"))
(variable_name) @variable (variable_modifier) @constant.builtin
; Size suffix on URL-style variables. Numeric forms read as numbers,
; named forms (HighRes, Panorama, ...) as constants.
((variable_modifier) @number ((variable_modifier) @number
(#match? @number "^[0-9]+(sq)?$")) (#match? @number "^[0-9]+(sq)?$"))
(variable_modifier) @constant.builtin
; text: / color: / font: / image: prefix and its argument.
(variable_prefix) @keyword (variable_prefix) @keyword
(prefix_argument) @variable (prefix_argument) @variable
; {lang:Translatable string}
(lang_tag) @string.special (lang_tag) @string.special
(lang_text) @string (lang_text) @string
; Block attributes: {block:Photoset rows="3"}
(attribute_name) @attribute (attribute_name) @attribute
(attribute_value) @string (attribute_value) @string