mirror of
https://github.com/nvim-treesitter/nvim-treesitter
synced 2024-09-16 14:34:05 +02: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": {
|
||||
"revision": "da605af8c5999b43e6839b575eae5e6cafabb06f"
|
||||
},
|
||||
"glimmer_javascript": {
|
||||
"revision": "a260911201684f80cf815418b3771e6c39309f81"
|
||||
},
|
||||
"glimmer_typescript": {
|
||||
"revision": "9d018a0f93417e6951264a26093b89ee63df7315"
|
||||
},
|
||||
"glsl": {
|
||||
"revision": "ddc3137a2d775aca93084ff997fa13cc1691058a"
|
||||
},
|
||||
|
|
|
@ -704,7 +704,7 @@ list.gleam = {
|
|||
|
||||
list.glimmer = {
|
||||
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" },
|
||||
},
|
||||
filetype = "handlebars",
|
||||
|
@ -712,6 +712,26 @@ list.glimmer = {
|
|||
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 = {
|
||||
install_info = {
|
||||
url = "https://github.com/theHamsta/tree-sitter-glsl",
|
||||
|
|
|
@ -43,10 +43,6 @@
|
|||
|
||||
(statement_identifier) @label
|
||||
|
||||
(glimmer_opening_tag) @tag.builtin
|
||||
|
||||
(glimmer_closing_tag) @tag.builtin
|
||||
|
||||
; Function and method definitions
|
||||
;--------------------------------
|
||||
(function_expression
|
||||
|
|
|
@ -88,9 +88,6 @@
|
|||
(#set! injection.include-children)
|
||||
(#set! injection.language "glimmer")))
|
||||
|
||||
((glimmer_template) @injection.content
|
||||
(#set! injection.language "glimmer"))
|
||||
|
||||
; css`<css>`, keyframes`<css>`
|
||||
(call_expression
|
||||
function: [
|
||||
|
|
|
@ -1,2 +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))
|
||||
|
|
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…
Reference in a new issue