Add svelte language server
Add svelte tree sitter Add svelte config file Add svelte highlighting
This commit is contained in:
parent
415b8f0147
commit
1424a7a56a
9 changed files with 268 additions and 1 deletions
18
crates/zed/src/languages/svelte/config.toml
Normal file
18
crates/zed/src/languages/svelte/config.toml
Normal file
|
@ -0,0 +1,18 @@
|
|||
name = "Svelte"
|
||||
path_suffixes = ["svelte"]
|
||||
line_comment = "// "
|
||||
autoclose_before = ";:.,=}])>"
|
||||
brackets = [
|
||||
{ start = "{", end = "}", close = true, newline = true },
|
||||
{ start = "[", end = "]", close = true, newline = true },
|
||||
{ start = "(", end = ")", close = true, newline = true },
|
||||
{ start = "<", end = ">", close = false, newline = true, not_in = ["string", "comment"] },
|
||||
{ start = "\"", end = "\"", close = true, newline = false, not_in = ["string"] },
|
||||
{ start = "'", end = "'", close = true, newline = false, not_in = ["string", "comment"] },
|
||||
{ start = "`", end = "`", close = true, newline = false, not_in = ["string"] },
|
||||
{ start = "/*", end = " */", close = true, newline = false, not_in = ["string", "comment"] },
|
||||
]
|
||||
|
||||
[overrides.element]
|
||||
line_comment = { remove = true }
|
||||
block_comment = ["{/* ", " */}"]
|
9
crates/zed/src/languages/svelte/folds.scm
Executable file
9
crates/zed/src/languages/svelte/folds.scm
Executable file
|
@ -0,0 +1,9 @@
|
|||
[
|
||||
(style_element)
|
||||
(script_element)
|
||||
(element)
|
||||
(if_statement)
|
||||
(else_statement)
|
||||
(each_statement)
|
||||
(await_statement)
|
||||
] @fold
|
68
crates/zed/src/languages/svelte/highlights.scm
Executable file
68
crates/zed/src/languages/svelte/highlights.scm
Executable file
|
@ -0,0 +1,68 @@
|
|||
; Special identifiers
|
||||
;--------------------
|
||||
[
|
||||
"<"
|
||||
">"
|
||||
"</"
|
||||
"/>"
|
||||
"#"
|
||||
":"
|
||||
"/"
|
||||
"@"
|
||||
] @tag.delimiter
|
||||
|
||||
[
|
||||
"{"
|
||||
"}"
|
||||
] @punctuation.bracket
|
||||
|
||||
[
|
||||
(special_block_keyword)
|
||||
(then)
|
||||
(as)
|
||||
] @keyword
|
||||
|
||||
[
|
||||
(text)
|
||||
(raw_text_expr)
|
||||
] @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)$"))
|
||||
|
||||
((element (start_tag (tag_name) @_tag) (text) @text.title)
|
||||
(#match? @_tag "^(h[0-9]|title)$"))
|
||||
|
||||
"=" @operator
|
20
crates/zed/src/languages/svelte/indents.scm
Executable file
20
crates/zed/src/languages/svelte/indents.scm
Executable file
|
@ -0,0 +1,20 @@
|
|||
[
|
||||
(element)
|
||||
(if_statement)
|
||||
(each_statement)
|
||||
(await_statement)
|
||||
(script_element)
|
||||
(style_element)
|
||||
] @indent
|
||||
|
||||
[
|
||||
(end_tag)
|
||||
(else_statement)
|
||||
(if_end_expr)
|
||||
(each_end_expr)
|
||||
(await_end_expr)
|
||||
">"
|
||||
"/>"
|
||||
] @branch
|
||||
|
||||
(comment) @ignore
|
9
crates/zed/src/languages/svelte/injections.scm
Executable file
9
crates/zed/src/languages/svelte/injections.scm
Executable file
|
@ -0,0 +1,9 @@
|
|||
; injections.scm
|
||||
; --------------
|
||||
(script_element
|
||||
(raw_text) @content
|
||||
(#set! "language" "javascript"))
|
||||
|
||||
(style_element
|
||||
(raw_text) @content
|
||||
(#set! "language" "css"))
|
Loading…
Add table
Add a link
Reference in a new issue