diff options
Diffstat (limited to 'runtime/queries/javascript/locals.scm')
| -rw-r--r-- | runtime/queries/javascript/locals.scm | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/runtime/queries/javascript/locals.scm b/runtime/queries/javascript/locals.scm new file mode 100644 index 000000000..6d6846fc7 --- /dev/null +++ b/runtime/queries/javascript/locals.scm @@ -0,0 +1,69 @@ +; 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) |
