languages: add svelte support (#733)
* languages: add svelte support * languages: add svelte injections
This commit is contained in:
parent
64e8f0017c
commit
b2195e08b5
5 changed files with 129 additions and 0 deletions
4
.gitmodules
vendored
4
.gitmodules
vendored
|
@ -118,3 +118,7 @@
|
||||||
path = helix-syntax/languages/tree-sitter-zig
|
path = helix-syntax/languages/tree-sitter-zig
|
||||||
url = https://github.com/maxxnino/tree-sitter-zig
|
url = https://github.com/maxxnino/tree-sitter-zig
|
||||||
shallow = true
|
shallow = true
|
||||||
|
[submodule "helix-syntax/languages/tree-sitter-svelte"]
|
||||||
|
path = helix-syntax/languages/tree-sitter-svelte
|
||||||
|
url = https://github.com/Himujjal/tree-sitter-svelte
|
||||||
|
shallow = true
|
||||||
|
|
|
@ -277,6 +277,15 @@ roots = []
|
||||||
comment-token = "--"
|
comment-token = "--"
|
||||||
indent = { tab-width = 2, unit = " " }
|
indent = { tab-width = 2, unit = " " }
|
||||||
|
|
||||||
|
[[language]]
|
||||||
|
name = "svelte"
|
||||||
|
scope = "source.svelte"
|
||||||
|
injection-regex = "svelte"
|
||||||
|
file-types = ["svelte"]
|
||||||
|
roots = []
|
||||||
|
indent = { tab-width = 2, unit = " " }
|
||||||
|
language-server = { command = "svelteserver", args = ["--stdio"] }
|
||||||
|
|
||||||
[[language]]
|
[[language]]
|
||||||
name = "yaml"
|
name = "yaml"
|
||||||
scope = "source.yaml"
|
scope = "source.yaml"
|
||||||
|
|
68
runtime/queries/svelte/highlights.scm
Normal file
68
runtime/queries/svelte/highlights.scm
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
; Special identifiers
|
||||||
|
;--------------------
|
||||||
|
|
||||||
|
; TODO:
|
||||||
|
((element (start_tag (tag_name) @_tag) (text) @markup.heading)
|
||||||
|
(#match? @_tag "^(h[0-9]|title)$"))
|
||||||
|
|
||||||
|
((element (start_tag (tag_name) @_tag) (text) @markup.bold)
|
||||||
|
(#match? @_tag "^(strong|b)$"))
|
||||||
|
|
||||||
|
((element (start_tag (tag_name) @_tag) (text) @markup.italic)
|
||||||
|
(#match? @_tag "^(em|i)$"))
|
||||||
|
|
||||||
|
; ((element (start_tag (tag_name) @_tag) (text) @markup.strike)
|
||||||
|
; (#match? @_tag "^(s|del)$"))
|
||||||
|
|
||||||
|
((element (start_tag (tag_name) @_tag) (text) @markup.underline)
|
||||||
|
(#eq? @_tag "u"))
|
||||||
|
|
||||||
|
((element (start_tag (tag_name) @_tag) (text) @markup.inline)
|
||||||
|
(#match? @_tag "^(code|kbd)$"))
|
||||||
|
|
||||||
|
((element (start_tag (tag_name) @_tag) (text) @markup.underline.link)
|
||||||
|
(#eq? @_tag "a"))
|
||||||
|
|
||||||
|
((attribute
|
||||||
|
(attribute_name) @_attr
|
||||||
|
(quoted_attribute_value (attribute_value) @markup.undeline.link))
|
||||||
|
(#match? @_attr "^(href|src)$"))
|
||||||
|
|
||||||
|
(tag_name) @tag
|
||||||
|
(attribute_name) @property
|
||||||
|
(erroneous_end_tag_name) @error
|
||||||
|
(comment) @comment
|
||||||
|
|
||||||
|
[
|
||||||
|
(attribute_value)
|
||||||
|
(quoted_attribute_value)
|
||||||
|
] @string
|
||||||
|
|
||||||
|
[
|
||||||
|
(text)
|
||||||
|
(raw_text_expr)
|
||||||
|
] @none
|
||||||
|
|
||||||
|
[
|
||||||
|
(special_block_keyword)
|
||||||
|
(then)
|
||||||
|
(as)
|
||||||
|
] @keyword
|
||||||
|
|
||||||
|
[
|
||||||
|
"{"
|
||||||
|
"}"
|
||||||
|
] @punctuation.brackets
|
||||||
|
|
||||||
|
"=" @operator
|
||||||
|
|
||||||
|
[
|
||||||
|
"<"
|
||||||
|
">"
|
||||||
|
"</"
|
||||||
|
"/>"
|
||||||
|
"#"
|
||||||
|
":"
|
||||||
|
"/"
|
||||||
|
"@"
|
||||||
|
] @punctuation.definition.tag
|
18
runtime/queries/svelte/indents.toml
Normal file
18
runtime/queries/svelte/indents.toml
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
indent = [
|
||||||
|
"element"
|
||||||
|
"if_statement"
|
||||||
|
"each_statement"
|
||||||
|
"await_statement"
|
||||||
|
]
|
||||||
|
|
||||||
|
outdent = [
|
||||||
|
"end_tag"
|
||||||
|
"else_statement"
|
||||||
|
"if_end_expr"
|
||||||
|
"each_end_expr"
|
||||||
|
"await_end_expr"
|
||||||
|
">"
|
||||||
|
"/>"
|
||||||
|
]
|
||||||
|
|
||||||
|
ignore = "comment"
|
30
runtime/queries/svelte/injections.scm
Normal file
30
runtime/queries/svelte/injections.scm
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
; injections.scm
|
||||||
|
; --------------
|
||||||
|
((style_element
|
||||||
|
(raw_text) @injection.content)
|
||||||
|
(#set! injection.language "css"))
|
||||||
|
|
||||||
|
((attribute
|
||||||
|
(attribute_name) @_attr
|
||||||
|
(quoted_attribute_value (attribute_value) @css))
|
||||||
|
(#eq? @_attr "style"))
|
||||||
|
|
||||||
|
((script_element
|
||||||
|
(raw_text) @injection.content)
|
||||||
|
(#set! injection.language "javascript"))
|
||||||
|
|
||||||
|
((raw_text_expr) @injection.content
|
||||||
|
(#set! injection.language "javascript"))
|
||||||
|
|
||||||
|
(
|
||||||
|
(script_element
|
||||||
|
(start_tag
|
||||||
|
(attribute
|
||||||
|
(quoted_attribute_value (attribute_value) @_lang)))
|
||||||
|
(raw_text) @injection.content)
|
||||||
|
(#match? @_lang "(ts|typescript)")
|
||||||
|
(#set! injection.language "typescript")
|
||||||
|
)
|
||||||
|
|
||||||
|
(comment) @comment
|
||||||
|
|
Loading…
Add table
Reference in a new issue