From 90468ad6c592c9a93e30b0809b42552e3b24f1e7 Mon Sep 17 00:00:00 2001
From: Jacob Chandler <jchand1999@protonmail.com>
Date: Mon, 26 Sep 2022 19:27:54 -0400
Subject: [PATCH] fix: Improve JSX and TSX tag highlighting (#3973)

---
 runtime/queries/jsx/highlights.scm | 16 +++++++++++++---
 runtime/queries/tsx/highlights.scm |  2 +-
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/runtime/queries/jsx/highlights.scm b/runtime/queries/jsx/highlights.scm
index d7054336..a1eb2d0e 100644
--- a/runtime/queries/jsx/highlights.scm
+++ b/runtime/queries/jsx/highlights.scm
@@ -1,5 +1,3 @@
-; inherits: ecma
-
 ; Highlight component names differently
 (jsx_opening_element ((identifier) @constructor
  (#match? @constructor "^[A-Z]")))
@@ -7,21 +5,33 @@
 ; Handle the dot operator effectively - <My.Component>
 (jsx_opening_element ((nested_identifier (identifier) @tag (identifier) @constructor)))
 
+; Highlight brackets differently
+(jsx_opening_element ["<" ">"] @punctuation.bracket)
+
 (jsx_closing_element ((identifier) @constructor
  (#match? @constructor "^[A-Z]")))
 
 ; Handle the dot operator effectively - </My.Component>
 (jsx_closing_element ((nested_identifier (identifier) @tag (identifier) @constructor)))
 
+; Highlight brackets differently
+(jsx_closing_element ["<" "/" ">"] @punctuation.bracket)
+
 (jsx_self_closing_element ((identifier) @constructor
  (#match? @constructor "^[A-Z]")))
 
 ; Handle the dot operator effectively - <My.Component />
 (jsx_self_closing_element ((nested_identifier (identifier) @tag (identifier) @constructor)))
 
-; TODO: also tag @punctuation.delimiter?
+; Highlight brackets differently
+(jsx_self_closing_element ["<" "/" ">"] @punctuation.bracket)
+
+; Handle attribute delimiter
+(jsx_attribute "=" @punctuation.delimiter)
 
 (jsx_opening_element (identifier) @tag)
 (jsx_closing_element (identifier) @tag)
 (jsx_self_closing_element (identifier) @tag)
 (jsx_attribute (property_identifier) @variable.other.member)
+
+; inherits: ecma
diff --git a/runtime/queries/tsx/highlights.scm b/runtime/queries/tsx/highlights.scm
index 1b61e36d..100c7cc7 100644
--- a/runtime/queries/tsx/highlights.scm
+++ b/runtime/queries/tsx/highlights.scm
@@ -1 +1 @@
-; inherits: typescript
+; inherits: jsx,typescript