Update glimmer queries from plugin

Maybe there is a way to read this file from the plugin directly?
This commit is contained in:
NullVoxPopuli 2021-03-17 22:57:58 -04:00 committed by Stephan Seitz
parent bc64492720
commit 76c1cab7ab

View file

@ -1,10 +1,9 @@
;; By @alexlafroscia (https://github.com/alexlafroscia/tree-sitter-glimmer) ; === Tag Names ===
;; Licensed under MIT
;; Modified for nvim-treesitter
; Tags that start with a lower case letter are HTML tags ; Tags that start with a lower case letter are HTML tags
; We'll also use this highlighting for named blocks (which start with `:`)
((tag_name) @tag ((tag_name) @tag
(#match? @tag "^[a-z]")) (#match? @tag "^(:)?[a-z]"))
; Tags that start with a capital letter are Glimmer components ; Tags that start with a capital letter are Glimmer components
((tag_name) @constructor ((tag_name) @constructor
(#match? @constructor "^[A-Z]")) (#match? @constructor "^[A-Z]"))
@ -15,16 +14,68 @@
(number_literal) @number (number_literal) @number
(boolean_literal) @boolean (boolean_literal) @boolean
(concat_statement) @string
; === Block Statements ===
; Highlight the brackets
(block_statement_start) @tag.delimiter
(block_statement_end) @tag.delimiter
; Highlight `if`/`each`/`let`
((block_statement_start path: (identifier) @conditional)
(#match? @conditional "^(if|each|let)$"))
((block_statement_end path: (identifier) @conditional)
(#match? @conditional "^(if|each|let)$"))
((mustache_statement (identifier) @conditional)
(#match? @conditional "else"))
; == Mustache Statements === ; == Mustache Statements ===
; Hightlight the whole statement, to color brackets and separators ; Hightlight the whole statement, to color brackets and separators
(mustache_statement) @tag.delimiter (mustache_statement) @tag.delimiter
; Generic identifiers are variables ; An identifier in a mustache expression is a variable
(identifier) @variable ((mustache_statement [
(path_expression (identifier) @variable)
(identifier) @variable
])
(#not-match? @variable "yield|outlet|this|else"))
; As are arguments in a block statement
(block_statement_start argument: [
(path_expression (identifier) @variable)
(identifier) @variable
])
; As is an identifier in a block param
(block_params (identifier) @variable)
; As are helper arguments
(helper_invocation argument: [
(path_expression (identifier) @variable)
(identifier) @variable
])
; `this` should be highlighted as a built-in variable
((mustache_statement [
(path_expression (identifier) @variable.builtin)
(identifier) @variable.builtin
])
(#match? @variable.builtin "this"))
; If the identifier is just "yield" or "outlet", it's a keyword
((mustache_statement (identifier) @keyword)
(#match? @keyword "yield|outlet"))
; Helpers are functions ; Helpers are functions
;TODO: does not exist ((helper_invocation helper: [
;;(helper_identifier) @function (path_expression (identifier) @function)
(identifier) @function
])
(#not-match? @function "if|yield"))
((helper_invocation helper: (identifier) @conditional)
(#match? @conditional "if"))
((helper_invocation helper: (identifier) @keyword)
(#match? @keyword "yield"))
(hash_pair key: (identifier) @property)
(comment_statement) @comment (comment_statement) @comment