From 692b051b09935653befdb8f7ba8afdb640adf17b Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Mon, 12 Jun 2023 09:54:30 -0600 Subject: feat!: drop modules, general refactor and cleanup --- runtime/queries/javascript/folds.scm | 1 + runtime/queries/javascript/highlights.scm | 56 +++++++++++++++++++++++++ runtime/queries/javascript/indents.scm | 1 + runtime/queries/javascript/injections.scm | 1 + runtime/queries/javascript/locals.scm | 69 +++++++++++++++++++++++++++++++ 5 files changed, 128 insertions(+) create mode 100644 runtime/queries/javascript/folds.scm create mode 100644 runtime/queries/javascript/highlights.scm create mode 100644 runtime/queries/javascript/indents.scm create mode 100644 runtime/queries/javascript/injections.scm create mode 100644 runtime/queries/javascript/locals.scm (limited to 'runtime/queries/javascript') diff --git a/runtime/queries/javascript/folds.scm b/runtime/queries/javascript/folds.scm new file mode 100644 index 000000000..b6d9b28bf --- /dev/null +++ b/runtime/queries/javascript/folds.scm @@ -0,0 +1 @@ +; inherits: ecma,jsx diff --git a/runtime/queries/javascript/highlights.scm b/runtime/queries/javascript/highlights.scm new file mode 100644 index 000000000..257a731ad --- /dev/null +++ b/runtime/queries/javascript/highlights.scm @@ -0,0 +1,56 @@ +; inherits: ecma,jsx + +; 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 diff --git a/runtime/queries/javascript/indents.scm b/runtime/queries/javascript/indents.scm new file mode 100644 index 000000000..b6d9b28bf --- /dev/null +++ b/runtime/queries/javascript/indents.scm @@ -0,0 +1 @@ +; inherits: ecma,jsx diff --git a/runtime/queries/javascript/injections.scm b/runtime/queries/javascript/injections.scm new file mode 100644 index 000000000..b6d9b28bf --- /dev/null +++ b/runtime/queries/javascript/injections.scm @@ -0,0 +1 @@ +; inherits: ecma,jsx 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) -- cgit v1.2.3-70-g09d2