Fix JavaScript and TypeScript HTML injections (#16479)

Fixes #16199

## Description

Recently added template string injections do not completely work for
because any time there is an interpolation (`${// some js content}`)
within an element, its closing tag is not highlighted properly:

![image](https://github.com/user-attachments/assets/e660894b-6e4b-4300-b8d9-2757fa235679)

This PR fixes the issue:

![image](https://github.com/user-attachments/assets/629a30c3-9b3a-4338-aee9-622dbb19581c)

Release Notes:

- Fixed incomplete syntax highlighting for HTML injections inside
JavaScript template tags.

## Note

I'm a beginner with treesitter so I only modified the part for HTML
usecase.
Should the same solution be applied to other injections (`css`, `js`,
etc.)?
This commit is contained in:
Florian Sanders 2024-08-23 08:53:03 +02:00 committed by GitHub
parent 79d8b97531
commit bdf26fe38a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 4 additions and 5 deletions

View file

@ -13,8 +13,8 @@
(call_expression
function: (identifier) @_name (#eq? @_name "html")
arguments: (template_string (string_fragment) @content
(#set! "language" "html"))
arguments: (template_string) @content
(#set! "language" "html")
)
(call_expression

View file

@ -17,8 +17,8 @@
(call_expression
function: (identifier) @_name (#eq? @_name "html")
arguments: (template_string (string_fragment) @content
(#set! "language" "html"))
arguments: (template_string) @content
(#set! "language" "html")
)
(call_expression
@ -50,4 +50,3 @@
arguments: (template_string (string_fragment) @content
(#set! "language" "yaml"))
)