From d54a262436ca76a066353188aec2e43cdbc0169f Mon Sep 17 00:00:00 2001 From: Brett Schneider Date: Sun, 22 Feb 2026 22:40:18 -0600 Subject: [PATCH] languages: Add syntax highlighting for HTML character references (#48629) HTML character references like `·`, `'`, and `{` are correctly parsed by tree-sitter as named nodes (`html_character_reference` in TSX/JavaScript, `entity` in HTML), but no highlight query captures them. This means they render as plain, unhighlighted text in the editor. This PR adds one-line highlight captures for each: - **TSX** (`crates/languages/src/tsx/highlights.scm`): `(html_character_reference) @string.special` - **JavaScript** (`crates/languages/src/javascript/highlights.scm`): `(html_character_reference) @string.special` - **HTML** (`extensions/html/languages/html/highlights.scm`): `(entity) @string.special` `@string.special` is already styled by all built-in themes (One Dark, Ayu, Gruvbox, etc.), so no theme changes are needed. Release Notes: - Added syntax highlighting for HTML character references (`·`, `'`, `{`, etc.) in TSX, JavaScript, and HTML files. --- crates/languages/src/javascript/highlights.scm | 1 + crates/languages/src/tsx/highlights.scm | 1 + extensions/html/languages/html/highlights.scm | 1 + 3 files changed, 3 insertions(+) diff --git a/crates/languages/src/javascript/highlights.scm b/crates/languages/src/javascript/highlights.scm index 938ee78e7fc06f118e7604e0cb5ec134d4e42095..5561dc31d56d52e6b4d6f71c07137537953410f6 100644 --- a/crates/languages/src/javascript/highlights.scm +++ b/crates/languages/src/javascript/highlights.scm @@ -360,3 +360,4 @@ (jsx_self_closing_element (["<" "/>"]) @punctuation.bracket.jsx) (jsx_attribute "=" @punctuation.delimiter.jsx) (jsx_text) @text.jsx +(html_character_reference) @string.special diff --git a/crates/languages/src/tsx/highlights.scm b/crates/languages/src/tsx/highlights.scm index 1339baabf254c02fba689e01755762328fa21193..a96bf96281fd90a77a3411d1ad909f22c12ac0df 100644 --- a/crates/languages/src/tsx/highlights.scm +++ b/crates/languages/src/tsx/highlights.scm @@ -424,3 +424,4 @@ (jsx_self_closing_element (["<" "/>"]) @punctuation.bracket.jsx) (jsx_attribute "=" @punctuation.delimiter.jsx) (jsx_text) @text.jsx +(html_character_reference) @string.special diff --git a/extensions/html/languages/html/highlights.scm b/extensions/html/languages/html/highlights.scm index 1cc0601b764554c37ac28a45e988997b267b32fc..bb3b43e813929de705605e3ecc3e0b1052c48297 100644 --- a/extensions/html/languages/html/highlights.scm +++ b/extensions/html/languages/html/highlights.scm @@ -7,6 +7,7 @@ (attribute_value) ] @string (comment) @comment +(entity) @string.special "=" @punctuation.delimiter.html