1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-02-03 09:00:06 +08:00
SpaceVim/bundle/nvim-treesitter/queries/javascript/locals.scm

64 lines
1.3 KiB
Scheme

; inherits: ecma,jsx
; Both properties are matched here.
;
; class Foo {
; this.#bar = "baz";
; this.quuz = "qux";
; }
(field_definition
property: [(property_identifier) (private_property_identifier)] @definition.var)
; this.foo = "bar"
(assignment_expression
left: (member_expression
object: (this)
property: (property_identifier) @definition.var))
(formal_parameters
(identifier) @definition.parameter)
; function(arg = []) {
(formal_parameters
(assignment_pattern
left: (identifier) @definition.parameter))
; x => x
(arrow_function
parameter: (identifier) @definition.parameter)
;; ({ a }) => null
(formal_parameters
(object_pattern
(shorthand_property_identifier_pattern) @definition.parameter))
;; ({ a: b }) => null
(formal_parameters
(object_pattern
(pair_pattern
value: (identifier) @definition.parameter)))
;; ([ a ]) => null
(formal_parameters
(array_pattern
(identifier) @definition.parameter))
(formal_parameters
(rest_pattern
(identifier) @definition.parameter))
; Both methods are matched here.
;
; class Foo {
; #bar(x) { x }
; baz(y) { y }
; }
(method_definition
([(property_identifier) (private_property_identifier)] @definition.function)
(#set! definition.var.scope parent))
; this.foo()
(member_expression
object: (this)
property: (property_identifier) @reference)