mirror of
https://github.com/ilyakooo0/helix.git
synced 2024-08-17 03:50:21 +03:00
Add typst language and lsp (#7474)
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>
This commit is contained in:
parent
ef1f4f31b6
commit
2906660119
@ -163,6 +163,7 @@
|
||||
| tsx | ✓ | ✓ | ✓ | `typescript-language-server` |
|
||||
| twig | ✓ | | | |
|
||||
| typescript | ✓ | ✓ | ✓ | `typescript-language-server` |
|
||||
| typst | ✓ | | | `typst-lsp` |
|
||||
| ungrammar | ✓ | | | |
|
||||
| unison | ✓ | | | |
|
||||
| uxntal | ✓ | | | |
|
||||
|
@ -88,6 +88,7 @@ wgsl_analyzer = { command = "wgsl_analyzer" }
|
||||
yaml-language-server = { command = "yaml-language-server", args = ["--stdio"] }
|
||||
zls = { command = "zls" }
|
||||
blueprint-compiler = { command = "blueprint-compiler", args = ["lsp"] }
|
||||
typst-lsp = { command = "typst-lsp" }
|
||||
|
||||
[language-server.ansible-language-server]
|
||||
command = "ansible-language-server"
|
||||
@ -2912,6 +2913,27 @@ roots = []
|
||||
indent = { tab-width = 2, unit = " " }
|
||||
grammar = "html"
|
||||
|
||||
[[language]]
|
||||
name = "typst"
|
||||
scope = "source.typst"
|
||||
injection-regex = "typst"
|
||||
file-types = ["typst", "typ"]
|
||||
roots = []
|
||||
comment-token = "//"
|
||||
language-servers = ["typst-lsp"]
|
||||
indent = { tab-width = 2, unit = " " }
|
||||
|
||||
[language.auto-pairs]
|
||||
'(' = ')'
|
||||
'{' = '}'
|
||||
'[' = ']'
|
||||
'$' = '$'
|
||||
'"' = '"'
|
||||
|
||||
[[grammar]]
|
||||
name = "typst"
|
||||
source = { git = "https://github.com/uben0/tree-sitter-typst", rev = "e35aa22395fdde82bbc4b5700c324ce346dfc9e5" }
|
||||
|
||||
[[language]]
|
||||
name = "nunjucks"
|
||||
scope = "text.html.nunjucks"
|
||||
|
77
runtime/queries/typst/highlights.scm
Normal file
77
runtime/queries/typst/highlights.scm
Normal file
@ -0,0 +1,77 @@
|
||||
(call
|
||||
item: (ident) @function)
|
||||
(call
|
||||
item: (field field: (ident) @function.method))
|
||||
(tagged field: (ident) @tag)
|
||||
(field field: (ident) @tag)
|
||||
(comment) @comment
|
||||
|
||||
; CONTROL
|
||||
(let "let" @keyword.storage.type)
|
||||
(branch ["if" "else"] @keyword.control.conditional)
|
||||
(while "while" @keyword.control.repeat)
|
||||
(for ["for" "in"] @keyword.control.repeat)
|
||||
(import "import" @keyword.control.import)
|
||||
(as "as" @keyword.operator)
|
||||
(include "include" @keyword.control.import)
|
||||
(show "show" @keyword.control)
|
||||
(set "set" @keyword.control)
|
||||
(return "return" @keyword.control)
|
||||
(flow ["break" "continue"] @keyword.control)
|
||||
|
||||
; OPERATOR
|
||||
(in ["in" "not"] @keyword.operator)
|
||||
(and "and" @keyword.operator)
|
||||
(or "or" @keyword.operator)
|
||||
(not "not" @keyword.operator)
|
||||
(sign ["+" "-"] @operator)
|
||||
(add "+" @operator)
|
||||
(sub "-" @operator)
|
||||
(mul "*" @operator)
|
||||
(div "/" @operator)
|
||||
(cmp ["==" "<=" ">=" "!=" "<" ">"] @operator)
|
||||
(fraction "/" @operator)
|
||||
(fac "!" @operator)
|
||||
(attach ["^" "_"] @operator)
|
||||
(wildcard) @operator
|
||||
|
||||
; VALUE
|
||||
(raw_blck "```" @operator) @markup.raw.block
|
||||
(raw_span "`" @operator) @markup.raw.block
|
||||
(raw_blck lang: (ident) @tag)
|
||||
(label) @tag
|
||||
(ref) @tag
|
||||
(number) @constant.numeric
|
||||
(string) @string
|
||||
(content ["[" "]"] @operator)
|
||||
(bool) @constant.builtin.boolean
|
||||
(builtin) @constant.builtin
|
||||
(none) @constant.builtin
|
||||
(auto) @constant.builtin
|
||||
(ident) @variable
|
||||
(call
|
||||
item: (builtin) @function.builtin)
|
||||
|
||||
; MARKUP
|
||||
(item "-" @markup.list)
|
||||
(term ["/" ":"] @markup.list)
|
||||
(heading ["=" "==" "===" "====" "====="] @markup.heading.marker) @markup.heading
|
||||
(url) @tag
|
||||
(emph) @markup.italic
|
||||
(strong) @markup.bold
|
||||
(symbol) @constant.character
|
||||
(shorthand) @constant.builtin
|
||||
(quote) @markup.quote
|
||||
(align) @operator
|
||||
(letter) @constant.character
|
||||
(linebreak) @constant.builtin
|
||||
|
||||
(math "$" @operator)
|
||||
"#" @operator
|
||||
"end" @operator
|
||||
|
||||
(escape) @constant.character.escape
|
||||
["(" ")" "{" "}"] @punctuation.bracket
|
||||
["," ";" ".." ":" "sep"] @punctuation.delimiter
|
||||
"assign" @punctuation
|
||||
(field "." @punctuation)
|
6
runtime/queries/typst/injections.scm
Normal file
6
runtime/queries/typst/injections.scm
Normal file
@ -0,0 +1,6 @@
|
||||
(raw_blck
|
||||
(blob) @injection.shebang @injection.content)
|
||||
|
||||
(raw_blck
|
||||
lang: (ident) @injection.language
|
||||
(blob) @injection.content)
|
Loading…
Reference in New Issue
Block a user