mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-03 20:10:10 -04:00
Update glimmer queries from plugin
Maybe there is a way to read this file from the plugin directly?
This commit is contained in:
parent
bc64492720
commit
76c1cab7ab
1 changed files with 59 additions and 8 deletions
|
|
@ -1,10 +1,9 @@
|
|||
;; By @alexlafroscia (https://github.com/alexlafroscia/tree-sitter-glimmer)
|
||||
;; Licensed under MIT
|
||||
;; Modified for nvim-treesitter
|
||||
; === Tag Names ===
|
||||
|
||||
; 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
|
||||
(#match? @tag "^[a-z]"))
|
||||
(#match? @tag "^(:)?[a-z]"))
|
||||
; Tags that start with a capital letter are Glimmer components
|
||||
((tag_name) @constructor
|
||||
(#match? @constructor "^[A-Z]"))
|
||||
|
|
@ -15,16 +14,68 @@
|
|||
(number_literal) @number
|
||||
(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 ===
|
||||
|
||||
; Hightlight the whole statement, to color brackets and separators
|
||||
(mustache_statement) @tag.delimiter
|
||||
|
||||
; Generic identifiers are variables
|
||||
(identifier) @variable
|
||||
; An identifier in a mustache expression is a 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
|
||||
;TODO: does not exist
|
||||
;;(helper_identifier) @function
|
||||
((helper_invocation helper: [
|
||||
(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
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue