mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-16 18:30:06 -04:00
feat!: drop modules, general refactor and cleanup
This commit is contained in:
parent
310f0925ec
commit
692b051b09
1247 changed files with 6096 additions and 9074 deletions
5
runtime/queries/glimmer/folds.scm
Normal file
5
runtime/queries/glimmer/folds.scm
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
[
|
||||
(element_node
|
||||
(element_node_start))
|
||||
(block_statement)
|
||||
] @fold
|
||||
117
runtime/queries/glimmer/highlights.scm
Normal file
117
runtime/queries/glimmer/highlights.scm
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
; === 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
|
||||
(#lua-match? @tag "^:?[%l]"))
|
||||
|
||||
; Tags that start with a capital letter are Glimmer components
|
||||
((tag_name) @constructor
|
||||
(#lua-match? @constructor "^%u"))
|
||||
|
||||
(attribute_name) @attribute
|
||||
|
||||
(string_literal) @string
|
||||
|
||||
(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) @keyword.conditional)
|
||||
|
||||
(block_statement_end
|
||||
path: (identifier) @keyword.conditional)
|
||||
|
||||
((mustache_statement
|
||||
(identifier) @keyword.conditional)
|
||||
(#lua-match? @keyword.conditional "else"))
|
||||
|
||||
; == Mustache Statements ===
|
||||
; Highlight the whole statement, to color brackets and separators
|
||||
(mustache_statement) @tag.delimiter
|
||||
|
||||
; An identifier in a mustache expression is a variable
|
||||
((mustache_statement
|
||||
[
|
||||
(path_expression
|
||||
(identifier) @variable)
|
||||
(identifier) @variable
|
||||
])
|
||||
(#not-any-of? @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
|
||||
])
|
||||
(#not-eq? @variable "this"))
|
||||
|
||||
; `this` should be highlighted as a built-in variable
|
||||
((identifier) @variable.builtin
|
||||
(#eq? @variable.builtin "this"))
|
||||
|
||||
; If the identifier is just "yield" or "outlet", it's a keyword
|
||||
((mustache_statement
|
||||
(identifier) @keyword)
|
||||
(#any-of? @keyword "yield" "outlet"))
|
||||
|
||||
; Helpers are functions
|
||||
((helper_invocation
|
||||
helper: [
|
||||
(path_expression
|
||||
(identifier) @function)
|
||||
(identifier) @function
|
||||
])
|
||||
(#not-any-of? @function "if" "yield"))
|
||||
|
||||
((helper_invocation
|
||||
helper: (identifier) @keyword.conditional)
|
||||
(#eq? @keyword.conditional "if"))
|
||||
|
||||
((helper_invocation
|
||||
helper: (identifier) @keyword)
|
||||
(#eq? @keyword "yield"))
|
||||
|
||||
(hash_pair
|
||||
key: (identifier) @property)
|
||||
|
||||
(comment_statement) @comment @spell
|
||||
|
||||
(attribute_node
|
||||
"=" @operator)
|
||||
|
||||
(block_params
|
||||
"as" @keyword)
|
||||
|
||||
(block_params
|
||||
"|" @operator)
|
||||
|
||||
[
|
||||
"<"
|
||||
">"
|
||||
"</"
|
||||
"/>"
|
||||
] @tag.delimiter
|
||||
34
runtime/queries/glimmer/indents.scm
Normal file
34
runtime/queries/glimmer/indents.scm
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
[
|
||||
(element_node
|
||||
(element_node_start))
|
||||
(element_node_void)
|
||||
(block_statement
|
||||
(block_statement_start))
|
||||
(mustache_statement)
|
||||
] @indent.begin
|
||||
|
||||
(element_node
|
||||
(element_node_end
|
||||
">" @indent.end))
|
||||
|
||||
(element_node_void
|
||||
"/>" @indent.end)
|
||||
|
||||
[
|
||||
">"
|
||||
"/>"
|
||||
"</"
|
||||
"{{/"
|
||||
"}}"
|
||||
] @indent.branch
|
||||
|
||||
(mustache_statement
|
||||
(helper_invocation
|
||||
helper: (identifier) @_identifier
|
||||
(#eq? @_identifier "else"))) @indent.branch
|
||||
|
||||
(mustache_statement
|
||||
((identifier) @_identifier
|
||||
(#eq? @_identifier "else"))) @indent.branch
|
||||
|
||||
(comment_statement) @indent.ignore
|
||||
21
runtime/queries/glimmer/injections.scm
Normal file
21
runtime/queries/glimmer/injections.scm
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
; comments
|
||||
((comment_statement) @injection.content
|
||||
(#set! injection.language "comment"))
|
||||
|
||||
; <style> tags
|
||||
((element_node
|
||||
(element_node_start
|
||||
(tag_name) @_tag_name
|
||||
(#eq? @_tag_name "style"))) @injection.content
|
||||
(#offset! @injection.content 0 7 0 -8)
|
||||
(#set! injection.language "css")
|
||||
(#set! injection.include-children))
|
||||
|
||||
; <script> tags
|
||||
((element_node
|
||||
(element_node_start
|
||||
(tag_name) @_tag_name
|
||||
(#eq? @_tag_name "script"))) @injection.content
|
||||
(#offset! @injection.content 0 8 0 -9)
|
||||
(#set! injection.language "glimmer_javascript")
|
||||
(#set! injection.include-children))
|
||||
9
runtime/queries/glimmer/locals.scm
Normal file
9
runtime/queries/glimmer/locals.scm
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
[
|
||||
(element_node)
|
||||
(block_statement)
|
||||
] @local.scope
|
||||
|
||||
(identifier) @local.reference
|
||||
|
||||
(block_params
|
||||
(identifier) @local.definition.var)
|
||||
Loading…
Add table
Add a link
Reference in a new issue