1
Files
flake-nixinator/config/neovim/store/nvim-treesitter/queries/javascript/locals.scm

70 lines
1.4 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)
] @local.definition.var)
; this.foo = "bar"
(assignment_expression
left: (member_expression
object: (this)
property: (property_identifier) @local.definition.var))
(formal_parameters
(identifier) @local.definition.parameter)
; function(arg = []) {
(formal_parameters
(assignment_pattern
left: (identifier) @local.definition.parameter))
; x => x
(arrow_function
parameter: (identifier) @local.definition.parameter)
; ({ a }) => null
(formal_parameters
(object_pattern
(shorthand_property_identifier_pattern) @local.definition.parameter))
; ({ a: b }) => null
(formal_parameters
(object_pattern
(pair_pattern
value: (identifier) @local.definition.parameter)))
; ([ a ]) => null
(formal_parameters
(array_pattern
(identifier) @local.definition.parameter))
(formal_parameters
(rest_pattern
(identifier) @local.definition.parameter))
; Both methods are matched here.
;
; class Foo {
; #bar(x) { x }
; baz(y) { y }
; }
(method_definition
[
(property_identifier)
(private_property_identifier)
] @local.definition.function
(#set! definition.var.scope parent))
; this.foo()
(member_expression
object: (this)
property: (property_identifier) @local.reference)