From 7cda5b85920f875052438791f01246a408ee490e Mon Sep 17 00:00:00 2001
From: woojiq <122799969+woojiq@users.noreply.github.com>
Date: Mon, 7 Aug 2023 22:07:56 +0300
Subject: [PATCH] build(tree-sitter): update javascript, typescript and tsx
(#7852)
* build(tree-sitter): update javascript, typescript and tsx
* update revision of tree-sitter parsers for these languages.
* rename `?.` to `optional_chain`, introduced in tree-sitter/tree-sitter-javascript@186f2adbf790552b354a9ba712341c7d48bdbccd.
* fix(highlight): change jsx queries to match latest tree-sitter
Latest tree-sitter/tree-sitter-javascript@bb1f97b643b77fc1f082d621bf533b4b14cf0c3 added some breaking changes that broke highlighting.
* Remove some queries with `nested_identifier`.
* Remove deprecated `jsx_fragment` from indent query.
* Count `` and `/>` as a single token.
---
languages.toml | 6 +++---
runtime/queries/_jsx/highlights.scm | 18 +++---------------
runtime/queries/_jsx/indents.scm | 1 -
runtime/queries/ecma/highlights.scm | 2 +-
4 files changed, 7 insertions(+), 20 deletions(-)
diff --git a/languages.toml b/languages.toml
index 0c3c6a7fa..c9a863ef0 100644
--- a/languages.toml
+++ b/languages.toml
@@ -563,7 +563,7 @@ args = { program = "{0}" }
[[grammar]]
name = "javascript"
-source = { git = "https://github.com/tree-sitter/tree-sitter-javascript", rev = "4a95461c4761c624f2263725aca79eeaefd36cad" }
+source = { git = "https://github.com/tree-sitter/tree-sitter-javascript", rev = "f772967f7b7bc7c28f845be2420a38472b16a8ee" }
[[language]]
name = "jsx"
@@ -590,7 +590,7 @@ indent = { tab-width = 2, unit = " " }
[[grammar]]
name = "typescript"
-source = { git = "https://github.com/tree-sitter/tree-sitter-typescript", rev = "5d20856f34315b068c41edaee2ac8a100081d259", subpath = "typescript" }
+source = { git = "https://github.com/tree-sitter/tree-sitter-typescript", rev = "b1bf4825d9eaa0f3bdeb1e52f099533328acfbdf", subpath = "typescript" }
[[language]]
name = "tsx"
@@ -604,7 +604,7 @@ indent = { tab-width = 2, unit = " " }
[[grammar]]
name = "tsx"
-source = { git = "https://github.com/tree-sitter/tree-sitter-typescript", rev = "5d20856f34315b068c41edaee2ac8a100081d259", subpath = "tsx" }
+source = { git = "https://github.com/tree-sitter/tree-sitter-typescript", rev = "b1bf4825d9eaa0f3bdeb1e52f099533328acfbdf", subpath = "tsx" }
[[language]]
name = "css"
diff --git a/runtime/queries/_jsx/highlights.scm b/runtime/queries/_jsx/highlights.scm
index 00641cded..853254e5b 100644
--- a/runtime/queries/_jsx/highlights.scm
+++ b/runtime/queries/_jsx/highlights.scm
@@ -4,9 +4,6 @@
(jsx_opening_element ((identifier) @constructor
(#match? @constructor "^[A-Z]")))
-; Handle the dot operator effectively -
-(jsx_opening_element ((nested_identifier (identifier) @tag (identifier) @constructor)))
-
(jsx_opening_element (identifier) @tag)
; Closing elements
@@ -15,9 +12,6 @@
(jsx_closing_element ((identifier) @constructor
(#match? @constructor "^[A-Z]")))
-; Handle the dot operator effectively -
-(jsx_closing_element ((nested_identifier (identifier) @tag (identifier) @constructor)))
-
(jsx_closing_element (identifier) @tag)
; Self-closing elements
@@ -26,9 +20,6 @@
(jsx_self_closing_element ((identifier) @constructor
(#match? @constructor "^[A-Z]")))
-; Handle the dot operator effectively -
-(jsx_self_closing_element ((nested_identifier (identifier) @tag (identifier) @constructor)))
-
(jsx_self_closing_element (identifier) @tag)
; Attributes
@@ -39,17 +30,14 @@
; Punctuation
; -----------
-; Handle attribute delimiter
+; Handle attribute delimiter ()
(jsx_attribute "=" @punctuation.delimiter)
;
(jsx_opening_element ["<" ">"] @punctuation.bracket)
;
-(jsx_closing_element ["<" "/" ">"] @punctuation.bracket)
+(jsx_closing_element ["" ">"] @punctuation.bracket)
;
-(jsx_self_closing_element ["<" "/" ">"] @punctuation.bracket)
-
-; <> ... >
-(jsx_fragment ["<" "/" ">"] @punctuation.bracket)
+(jsx_self_closing_element ["<" "/>"] @punctuation.braket)
diff --git a/runtime/queries/_jsx/indents.scm b/runtime/queries/_jsx/indents.scm
index 4731856cf..0609aa39a 100644
--- a/runtime/queries/_jsx/indents.scm
+++ b/runtime/queries/_jsx/indents.scm
@@ -1,5 +1,4 @@
[
- (jsx_fragment)
(jsx_element)
(jsx_self_closing_element)
] @indent
diff --git a/runtime/queries/ecma/highlights.scm b/runtime/queries/ecma/highlights.scm
index ddbe938fe..07f7dfeda 100644
--- a/runtime/queries/ecma/highlights.scm
+++ b/runtime/queries/ecma/highlights.scm
@@ -109,7 +109,7 @@
[
";"
- "?."
+ (optional_chain) ; ?.
"."
","
] @punctuation.delimiter