From c66b2f04d2dcb65f502e4d01b8c9b8b448cd6457 Mon Sep 17 00:00:00 2001 From: Oscar Wallberg Date: Mon, 18 May 2026 03:23:21 +0200 Subject: [PATCH] feat(ts): add javascript --- init.lua | 1 + nvim-pack-lock.json | 4 +++ queries/javascript/folds.scm | 1 + queries/javascript/highlights.scm | 56 +++++++++++++++++++++++++++++++ queries/javascript/injections.scm | 1 + 5 files changed, 63 insertions(+) create mode 100644 queries/javascript/folds.scm create mode 100644 queries/javascript/highlights.scm create mode 100644 queries/javascript/injections.scm diff --git a/init.lua b/init.lua index 82d2c6d..b93b4b9 100644 --- a/init.lua +++ b/init.lua @@ -61,6 +61,7 @@ require("ts").setup({ lang = "gotmpl", }, "https://github.com/tree-sitter/tree-sitter-html", + "https://github.com/tree-sitter/tree-sitter-javascript", "https://github.com/tree-sitter/tree-sitter-json", "https://github.com/tree-sitter-grammars/tree-sitter-luadoc", { diff --git a/nvim-pack-lock.json b/nvim-pack-lock.json index 9914827..6279d0f 100644 --- a/nvim-pack-lock.json +++ b/nvim-pack-lock.json @@ -93,6 +93,10 @@ "rev": "73a3947324f6efddf9e17c0ea58d454843590cc0", "src": "https://github.com/tree-sitter/tree-sitter-html" }, + "tree-sitter-javascript": { + "rev": "58404d8cf191d69f2674a8fd507bd5776f46cb11", + "src": "https://github.com/tree-sitter/tree-sitter-javascript" + }, "tree-sitter-json": { "rev": "001c28d7a29832b06b0e831ec77845553c89b56d", "src": "https://github.com/tree-sitter/tree-sitter-json" diff --git a/queries/javascript/folds.scm b/queries/javascript/folds.scm new file mode 100644 index 0000000..b6d9b28 --- /dev/null +++ b/queries/javascript/folds.scm @@ -0,0 +1 @@ +; inherits: ecma,jsx diff --git a/queries/javascript/highlights.scm b/queries/javascript/highlights.scm new file mode 100644 index 0000000..257a731 --- /dev/null +++ b/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/queries/javascript/injections.scm b/queries/javascript/injections.scm new file mode 100644 index 0000000..b6d9b28 --- /dev/null +++ b/queries/javascript/injections.scm @@ -0,0 +1 @@ +; inherits: ecma,jsx