Refine svelte queries to work with zed-style highlights

Mikayla Maki created

Bump scheme dependency:

Change summary

Cargo.lock                                     |  4 
crates/zed/Cargo.toml                          |  2 
crates/zed/src/languages/svelte/highlights.scm | 80 ++++++-------------
crates/zed/src/languages/svelte/indents.scm    | 12 ---
crates/zed/src/languages/svelte/injections.scm | 19 ++++
5 files changed, 49 insertions(+), 68 deletions(-)

Detailed changes

Cargo.lock 🔗

@@ -8118,8 +8118,8 @@ dependencies = [
 
 [[package]]
 name = "tree-sitter-scheme"
-version = "0.2.0"
-source = "git+https://github.com/6cdh/tree-sitter-scheme?rev=af0fd1fa452cb2562dc7b5c8a8c55551c39273b9#af0fd1fa452cb2562dc7b5c8a8c55551c39273b9"
+version = "0.5.0"
+source = "git+https://github.com/6cdh/tree-sitter-scheme?rev=ca8af220aaf2a80aaf609bfb0df193817e4f064b#ca8af220aaf2a80aaf609bfb0df193817e4f064b"
 dependencies = [
  "cc",
  "tree-sitter",

crates/zed/Cargo.toml 🔗

@@ -119,7 +119,7 @@ tree-sitter-toml = { git = "https://github.com/tree-sitter/tree-sitter-toml", re
 tree-sitter-typescript = { git = "https://github.com/tree-sitter/tree-sitter-typescript", rev = "5d20856f34315b068c41edaee2ac8a100081d259" }
 tree-sitter-ruby = "0.20.0"
 tree-sitter-html = "0.19.0"
-tree-sitter-scheme = { git = "https://github.com/6cdh/tree-sitter-scheme", rev = "af0fd1fa452cb2562dc7b5c8a8c55551c39273b9"}
+tree-sitter-scheme = { git = "https://github.com/6cdh/tree-sitter-scheme", rev = "ca8af220aaf2a80aaf609bfb0df193817e4f064b"}
 tree-sitter-racket = { git = "https://github.com/zed-industries/tree-sitter-racket", rev = "eb010cf2c674c6fd9a6316a84e28ef90190fe51a"}
 tree-sitter-yaml = { git = "https://github.com/zed-industries/tree-sitter-yaml", rev = "f545a41f57502e1b5ddf2a6668896c1b0620f930"}
 tree-sitter-svelte = { git = "https://github.com/Himujjal/tree-sitter-svelte", rev = "697bb515471871e85ff799ea57a76298a71a9cca"}

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

@@ -1,26 +1,16 @@
 ; Special identifiers
 ;--------------------
-[
-  "<"
-  ">"
-  "</"
-  "/>"
-  "#"
-  ":"
-  "/"
-  "@"
-] @tag.delimiter
 
-[
-  "{"
-  "}"
-] @punctuation.bracket
+; TODO:
+(tag_name) @tag
+(attribute_name) @property
+(erroneous_end_tag_name) @keyword
+(comment) @comment
 
 [
-  (special_block_keyword)
-  (then)
-  (as)
-] @keyword
+  (attribute_value)
+  (quoted_attribute_value)
+] @string
 
 [
   (text)
@@ -28,41 +18,25 @@
 ] @none
 
 [
-  (attribute_value)
-  (quoted_attribute_value)
-] @string
-
-(tag_name) @tag
-(attribute_name) @property
-(erroneous_end_tag_name) @error
-(comment) @comment
-
-((attribute
-   (attribute_name) @_attr
-   (quoted_attribute_value (attribute_value) @text.uri))
- (#match? @_attr "^(href|src)$"))
-
-; TODO:
-
-((element (start_tag (tag_name) @_tag) (text) @text.uri)
-  (#eq? @_tag "a"))
-
-((element (start_tag (tag_name) @_tag) (text) @text.literal)
-   (#match? @_tag "^(code|kbd)$"))
-
-((element (start_tag (tag_name) @_tag) (text) @text.underline)
-  (#eq? @_tag "u"))
-
-((element (start_tag (tag_name) @_tag) (text) @text.strike)
-  (#match? @_tag "^(s|del)$"))
-
-((element (start_tag (tag_name) @_tag) (text) @text.emphasis)
-   (#match? @_tag "^(em|i)$"))
-
-((element (start_tag (tag_name) @_tag) (text) @text.strong)
-   (#match? @_tag "^(strong|b)$"))
+  (special_block_keyword)
+  (then)
+  (as)
+] @keyword
 
-((element (start_tag (tag_name) @_tag) (text) @text.title)
-    (#match? @_tag "^(h[0-9]|title)$"))
+[
+  "{"
+  "}"
+] @punctuation.bracket
 
 "=" @operator
+
+[
+  "<"
+  ">"
+  "</"
+  "/>"
+  "#"
+  ":"
+  "/"
+  "@"
+] @tag.delimiter

crates/zed/src/languages/svelte/indents.scm 🔗

@@ -6,15 +6,3 @@
   (script_element)
   (style_element)
 ] @indent
-
-[
-  (end_tag)
-  (else_statement)
-  (if_end_expr)
-  (each_end_expr)
-  (await_end_expr)
-  ">"
-  "/>"
-] @branch
-
-(comment) @ignore

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

@@ -4,6 +4,25 @@
   (raw_text) @content
   (#set! "language" "javascript"))
 
+ ((script_element
+     (start_tag
+       (attribute
+         (quoted_attribute_value (attribute_value) @_language)))
+      (raw_text) @content)
+    (#eq? @_language "ts")
+    (#set! "language" "typescript"))
+
+((script_element
+    (start_tag
+        (attribute
+        (quoted_attribute_value (attribute_value) @_language)))
+    (raw_text) @content)
+  (#eq? @_language "typescript")
+  (#set! "language" "typescript"))
+
 (style_element
   (raw_text) @content
   (#set! "language" "css"))
+
+((raw_text_expr) @content
+  (#set! "language" "javascript"))