Fix issues with syntax highlighting in elixir and heex

Max Brunsfeld created

Change summary

crates/zed/src/languages/elixir/highlights.scm |  9 +++++++--
crates/zed/src/languages/heex/highlights.scm   | 15 +++++++++------
crates/zed/src/languages/heex/injections.scm   | 18 ++++++++++--------
3 files changed, 26 insertions(+), 16 deletions(-)

Detailed changes

crates/zed/src/languages/elixir/highlights.scm 🔗

@@ -36,8 +36,6 @@
 
 (char) @constant
 
-(interpolation "#{" @punctuation.special "}" @punctuation.special) @embedded
-
 (escape_sequence) @string.escape
 
 [
@@ -146,3 +144,10 @@
   "<<"
   ">>"
 ] @punctuation.bracket
+
+(interpolation "#{" @punctuation.special "}" @punctuation.special) @embedded
+
+((sigil
+  (sigil_name) @_sigil_name
+  (quoted_content) @embedded)
+ (#eq? @_sigil_name "H"))

crates/zed/src/languages/heex/highlights.scm 🔗

@@ -1,17 +1,11 @@
 ; HEEx delimiters
 [
-  "%>"
   "--%>"
   "-->"
   "/>"
   "<!"
   "<!--"
   "<"
-  "<%!--"
-  "<%"
-  "<%#"
-  "<%%="
-  "<%="
   "</"
   "</:"
   "<:"
@@ -20,6 +14,15 @@
   "}"
 ] @punctuation.bracket
 
+[
+  "<%!--"
+  "<%"
+  "<%#"
+  "<%%="
+  "<%="
+  "%>"
+] @keyword
+
 ; HEEx operators are highlighted as such
 "=" @operator
 

crates/zed/src/languages/heex/injections.scm 🔗

@@ -1,11 +1,13 @@
-((directive (partial_expression_value) @content)
- (#set! language "elixir")
- (#set! include-children)
- (#set! combined))
-
-; Regular expression_values do not need to be combined
-((directive (expression_value) @content)
- (#set! language "elixir"))
+(
+  (directive
+    [
+      (partial_expression_value)
+      (expression_value)
+      (ending_expression_value)
+    ] @content)
+  (#set! language "elixir")
+  (#set! combined)
+)
 
 ; expressions live within HTML tags, and do not need to be combined
 ;     <link href={ Routes.static_path(..) } />