feat(glimmer): add glimmer-javascript and glimmer-typescript (#7064)

This commit is contained in:
NullVoxPopuli 2024-08-31 13:15:40 -04:00 committed by GitHub
parent 0b61eb4923
commit 628f53e4cb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 152 additions and 8 deletions

View 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

View file

@ -0,0 +1,5 @@
; inherits: ecma
(glimmer_opening_tag) @indent.begin
(glimmer_closing_tag) @indent.end

View 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))

View file

@ -0,0 +1 @@
; inherits: ecma