mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-19 11:50:09 -04:00
feat(glimmer): add glimmer-javascript and glimmer-typescript (#7064)
This commit is contained in:
parent
0b61eb4923
commit
628f53e4cb
12 changed files with 152 additions and 8 deletions
|
|
@ -230,6 +230,12 @@
|
||||||
"glimmer": {
|
"glimmer": {
|
||||||
"revision": "da605af8c5999b43e6839b575eae5e6cafabb06f"
|
"revision": "da605af8c5999b43e6839b575eae5e6cafabb06f"
|
||||||
},
|
},
|
||||||
|
"glimmer_javascript": {
|
||||||
|
"revision": "a260911201684f80cf815418b3771e6c39309f81"
|
||||||
|
},
|
||||||
|
"glimmer_typescript": {
|
||||||
|
"revision": "9d018a0f93417e6951264a26093b89ee63df7315"
|
||||||
|
},
|
||||||
"glsl": {
|
"glsl": {
|
||||||
"revision": "ddc3137a2d775aca93084ff997fa13cc1691058a"
|
"revision": "ddc3137a2d775aca93084ff997fa13cc1691058a"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -704,7 +704,7 @@ list.gleam = {
|
||||||
|
|
||||||
list.glimmer = {
|
list.glimmer = {
|
||||||
install_info = {
|
install_info = {
|
||||||
url = "https://github.com/alexlafroscia/tree-sitter-glimmer",
|
url = "https://github.com/ember-tooling/tree-sitter-glimmer",
|
||||||
files = { "src/parser.c", "src/scanner.c" },
|
files = { "src/parser.c", "src/scanner.c" },
|
||||||
},
|
},
|
||||||
filetype = "handlebars",
|
filetype = "handlebars",
|
||||||
|
|
@ -712,6 +712,26 @@ list.glimmer = {
|
||||||
readme_name = "Glimmer and Ember",
|
readme_name = "Glimmer and Ember",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
list.glimmer_javascript = {
|
||||||
|
install_info = {
|
||||||
|
url = "https://github.com/NullVoxPopuli/tree-sitter-glimmer-javascript",
|
||||||
|
files = { "src/parser.c", "src/scanner.c" },
|
||||||
|
generate_requires_npm = true,
|
||||||
|
},
|
||||||
|
filetype = "javascript.glimmer",
|
||||||
|
maintainers = { "@NullVoxPopuli" },
|
||||||
|
}
|
||||||
|
|
||||||
|
list.glimmer_typescript = {
|
||||||
|
install_info = {
|
||||||
|
url = "https://github.com/NullVoxPopuli/tree-sitter-glimmer-typescript",
|
||||||
|
files = { "src/parser.c", "src/scanner.c" },
|
||||||
|
generate_requires_npm = true,
|
||||||
|
},
|
||||||
|
filetype = "typescript.glimmer",
|
||||||
|
maintainers = { "@NullVoxPopuli" },
|
||||||
|
}
|
||||||
|
|
||||||
list.glsl = {
|
list.glsl = {
|
||||||
install_info = {
|
install_info = {
|
||||||
url = "https://github.com/theHamsta/tree-sitter-glsl",
|
url = "https://github.com/theHamsta/tree-sitter-glsl",
|
||||||
|
|
|
||||||
|
|
@ -43,10 +43,6 @@
|
||||||
|
|
||||||
(statement_identifier) @label
|
(statement_identifier) @label
|
||||||
|
|
||||||
(glimmer_opening_tag) @tag.builtin
|
|
||||||
|
|
||||||
(glimmer_closing_tag) @tag.builtin
|
|
||||||
|
|
||||||
; Function and method definitions
|
; Function and method definitions
|
||||||
;--------------------------------
|
;--------------------------------
|
||||||
(function_expression
|
(function_expression
|
||||||
|
|
|
||||||
|
|
@ -88,9 +88,6 @@
|
||||||
(#set! injection.include-children)
|
(#set! injection.include-children)
|
||||||
(#set! injection.language "glimmer")))
|
(#set! injection.language "glimmer")))
|
||||||
|
|
||||||
((glimmer_template) @injection.content
|
|
||||||
(#set! injection.language "glimmer"))
|
|
||||||
|
|
||||||
; css`<css>`, keyframes`<css>`
|
; css`<css>`, keyframes`<css>`
|
||||||
(call_expression
|
(call_expression
|
||||||
function: [
|
function: [
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,21 @@
|
||||||
|
; comments
|
||||||
((comment_statement) @injection.content
|
((comment_statement) @injection.content
|
||||||
(#set! injection.language "comment"))
|
(#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))
|
||||||
|
|
|
||||||
61
queries/glimmer_javascript/highlights.scm
Normal file
61
queries/glimmer_javascript/highlights.scm
Normal file
|
|
@ -0,0 +1,61 @@
|
||||||
|
; inherits: ecma
|
||||||
|
|
||||||
|
(glimmer_opening_tag) @tag.builtin
|
||||||
|
|
||||||
|
(glimmer_closing_tag) @tag.builtin
|
||||||
|
|
||||||
|
; Copied from javascript
|
||||||
|
; Parameters
|
||||||
|
(formal_parameters
|
||||||
|
(identifier) @variable.parameter)
|
||||||
|
|
||||||
|
(formal_parameters
|
||||||
|
(rest_pattern
|
||||||
|
(identifier) @variable.parameter))
|
||||||
|
|
||||||
|
; ({ a }) => null
|
||||||
|
(formal_parameters
|
||||||
|
(object_pattern
|
||||||
|
(shorthand_property_identifier_pattern) @variable.parameter))
|
||||||
|
|
||||||
|
; ({ a = b }) => null
|
||||||
|
(formal_parameters
|
||||||
|
(object_pattern
|
||||||
|
(object_assignment_pattern
|
||||||
|
(shorthand_property_identifier_pattern) @variable.parameter)))
|
||||||
|
|
||||||
|
; ({ a: b }) => null
|
||||||
|
(formal_parameters
|
||||||
|
(object_pattern
|
||||||
|
(pair_pattern
|
||||||
|
value: (identifier) @variable.parameter)))
|
||||||
|
|
||||||
|
; ([ a ]) => null
|
||||||
|
(formal_parameters
|
||||||
|
(array_pattern
|
||||||
|
(identifier) @variable.parameter))
|
||||||
|
|
||||||
|
; ({ a } = { a }) => null
|
||||||
|
(formal_parameters
|
||||||
|
(assignment_pattern
|
||||||
|
(object_pattern
|
||||||
|
(shorthand_property_identifier_pattern) @variable.parameter)))
|
||||||
|
|
||||||
|
; ({ a = b } = { a }) => null
|
||||||
|
(formal_parameters
|
||||||
|
(assignment_pattern
|
||||||
|
(object_pattern
|
||||||
|
(object_assignment_pattern
|
||||||
|
(shorthand_property_identifier_pattern) @variable.parameter))))
|
||||||
|
|
||||||
|
; a => null
|
||||||
|
(arrow_function
|
||||||
|
parameter: (identifier) @variable.parameter)
|
||||||
|
|
||||||
|
; optional parameters
|
||||||
|
(formal_parameters
|
||||||
|
(assignment_pattern
|
||||||
|
left: (identifier) @variable.parameter))
|
||||||
|
|
||||||
|
; punctuation
|
||||||
|
(optional_chain) @punctuation.delimiter
|
||||||
5
queries/glimmer_javascript/indents.scm
Normal file
5
queries/glimmer_javascript/indents.scm
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
; inherits: ecma
|
||||||
|
|
||||||
|
(glimmer_opening_tag) @indent.begin
|
||||||
|
|
||||||
|
(glimmer_closing_tag) @indent.end
|
||||||
15
queries/glimmer_javascript/injections.scm
Normal file
15
queries/glimmer_javascript/injections.scm
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
; inherits: ecma
|
||||||
|
|
||||||
|
; Parse Ember/Glimmer/Handlebars/HTMLBars/etc. template literals
|
||||||
|
; e.g.: await render(hbs`<SomeComponent />`)
|
||||||
|
(call_expression
|
||||||
|
function: ((identifier) @_name
|
||||||
|
(#eq? @_name "hbs"))
|
||||||
|
arguments: ((template_string) @glimmer
|
||||||
|
(#offset! @glimmer 0 1 0 -1)))
|
||||||
|
|
||||||
|
; Ember Unified <template> syntax
|
||||||
|
; e.g.: <template><SomeComponent @arg={{double @value}} /></template>
|
||||||
|
((glimmer_template) @injection.content
|
||||||
|
(#set! injection.language "glimmer")
|
||||||
|
(#set! injection.include-children))
|
||||||
1
queries/glimmer_javascript/locals.scm
Normal file
1
queries/glimmer_javascript/locals.scm
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
; inherits: ecma
|
||||||
6
queries/glimmer_typescript/highlights.scm
Normal file
6
queries/glimmer_typescript/highlights.scm
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
; inherits: typescript
|
||||||
|
|
||||||
|
; Sub-language delimeters
|
||||||
|
(glimmer_opening_tag) @tag.builtin
|
||||||
|
|
||||||
|
(glimmer_closing_tag) @tag.builtin
|
||||||
3
queries/glimmer_typescript/indents.scm
Normal file
3
queries/glimmer_typescript/indents.scm
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
(glimmer_opening_tag) @indent.begin
|
||||||
|
|
||||||
|
(glimmer_closing_tag) @indent.end
|
||||||
15
queries/glimmer_typescript/injections.scm
Normal file
15
queries/glimmer_typescript/injections.scm
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
; inherits: typescript
|
||||||
|
|
||||||
|
; Parse Ember/Glimmer/Handlebars/HTMLBars/etc. template literals
|
||||||
|
; e.g.: await render(hbs`<SomeComponent />`)
|
||||||
|
(call_expression
|
||||||
|
function: ((identifier) @_name
|
||||||
|
(#eq? @_name "hbs"))
|
||||||
|
arguments: ((template_string) @glimmer
|
||||||
|
(#offset! @glimmer 0 1 0 -1)))
|
||||||
|
|
||||||
|
; Ember Unified <template> syntax
|
||||||
|
; e.g.: <template><SomeComponent @arg={{double @value}} /></template>
|
||||||
|
((glimmer_template) @injection.content
|
||||||
|
(#set! injection.language "glimmer")
|
||||||
|
(#set! injection.include-children))
|
||||||
Loading…
Add table
Add a link
Reference in a new issue