mirror of
https://github.com/helix-editor/helix
synced 2024-11-10 10:34:45 +01:00
languages: add svelte support (#733)
* languages: add svelte support * languages: add svelte injections
This commit is contained in:
parent
64e8f0017c
commit
b2195e08b5
4
.gitmodules
vendored
4
.gitmodules
vendored
@ -118,3 +118,7 @@
|
||||
path = helix-syntax/languages/tree-sitter-zig
|
||||
url = https://github.com/maxxnino/tree-sitter-zig
|
||||
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 = "--"
|
||||
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]]
|
||||
name = "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…
Reference in New Issue
Block a user