mirror of
https://github.com/helix-editor/helix.git
synced 2024-11-22 09:26:19 +04:00
Add Scheme support
Skipped scm for now :/ it overlaps with tree-sitter-tsq
This commit is contained in:
parent
6bd8924436
commit
d25bae844c
@ -1366,3 +1366,16 @@ roots = []
|
|||||||
[[grammar]]
|
[[grammar]]
|
||||||
name = "sshclientconfig"
|
name = "sshclientconfig"
|
||||||
source = { git = "https://github.com/metio/tree-sitter-ssh-client-config", rev = "769d7a01a2e5493b4bb5a51096c6bf4be130b024" }
|
source = { git = "https://github.com/metio/tree-sitter-ssh-client-config", rev = "769d7a01a2e5493b4bb5a51096c6bf4be130b024" }
|
||||||
|
|
||||||
|
[[language]]
|
||||||
|
name = "scheme"
|
||||||
|
scope = "source.scheme"
|
||||||
|
injection-regex = "scheme"
|
||||||
|
file-types = ["ss", "rkt"] # "scm",
|
||||||
|
roots = []
|
||||||
|
comment-token = ";"
|
||||||
|
indent = { tab-width = 2, unit = " " }
|
||||||
|
|
||||||
|
[[grammar]]
|
||||||
|
name = "scheme"
|
||||||
|
source = { git = "https://github.com/6cdh/tree-sitter-scheme", rev = "27fb77db05f890c2823b4bd751c6420378df146b" }
|
||||||
|
100
runtime/queries/scheme/highlights.scm
Normal file
100
runtime/queries/scheme/highlights.scm
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
(number) @constant.numeric
|
||||||
|
(character) @constant.character
|
||||||
|
(boolean) @constant.builtin.boolean
|
||||||
|
|
||||||
|
[(string)
|
||||||
|
(character)] @string
|
||||||
|
|
||||||
|
(escape_sequence) @constant.character.escape
|
||||||
|
|
||||||
|
[(comment)
|
||||||
|
(block_comment)
|
||||||
|
(directive)] @comment
|
||||||
|
|
||||||
|
[(boolean)
|
||||||
|
(character)] @constant
|
||||||
|
|
||||||
|
((symbol) @function.builtin
|
||||||
|
(#match? @function.builtin "^(eqv\\?|eq\\?|equal\\?)")) ; TODO
|
||||||
|
|
||||||
|
; keywords
|
||||||
|
|
||||||
|
((symbol) @keyword.conditional
|
||||||
|
(#match? @keyword.conditional "^(if|cond|case|when|unless)$"))
|
||||||
|
|
||||||
|
((symbol) @keyword
|
||||||
|
(#match? @keyword
|
||||||
|
"^(define|lambda|begin|do|define-syntax|and|or|if|cond|case|when|unless|else|=>|let|let*|let-syntax|let-values|let*-values|letrec|letrec*|letrec-syntax|set!|syntax-rules|identifier-syntax|quote|unquote|quote-splicing|quasiquote|unquote-splicing|delay|assert|library|export|import|rename|only|except|prefix)$"))
|
||||||
|
|
||||||
|
; special forms
|
||||||
|
|
||||||
|
(list
|
||||||
|
"["
|
||||||
|
(symbol)+ @variable
|
||||||
|
"]")
|
||||||
|
|
||||||
|
(list
|
||||||
|
.
|
||||||
|
(symbol) @_f
|
||||||
|
.
|
||||||
|
(list
|
||||||
|
(symbol) @variable)
|
||||||
|
(#eq? @_f "lambda"))
|
||||||
|
|
||||||
|
(list
|
||||||
|
.
|
||||||
|
(symbol) @_f
|
||||||
|
.
|
||||||
|
(list
|
||||||
|
(list
|
||||||
|
(symbol) @variable))
|
||||||
|
(#match? @_f
|
||||||
|
"^(let|let\\*|let-syntax|let-values|let\\*-values|letrec|letrec\\*|letrec-syntax)$"))
|
||||||
|
|
||||||
|
; operators
|
||||||
|
|
||||||
|
(list
|
||||||
|
.
|
||||||
|
(symbol) @operator
|
||||||
|
(#match? @operator "^([+*/<>=-]|(<=)|(>=))$"))
|
||||||
|
|
||||||
|
; quote
|
||||||
|
|
||||||
|
(abbreviation
|
||||||
|
"'" (symbol)) @constant
|
||||||
|
|
||||||
|
(list
|
||||||
|
.
|
||||||
|
(symbol) @_f
|
||||||
|
(#eq? @_f "quote")) @symbol
|
||||||
|
|
||||||
|
; library
|
||||||
|
|
||||||
|
(list
|
||||||
|
.
|
||||||
|
(symbol) @_lib
|
||||||
|
.
|
||||||
|
(symbol) @namespace
|
||||||
|
|
||||||
|
(#eq? @_lib "library"))
|
||||||
|
|
||||||
|
; procedure
|
||||||
|
|
||||||
|
(list
|
||||||
|
.
|
||||||
|
(symbol) @function)
|
||||||
|
|
||||||
|
;; variables
|
||||||
|
|
||||||
|
((symbol) @variable.builtin
|
||||||
|
(#eq? @variable.builtin "..."))
|
||||||
|
|
||||||
|
(symbol) @variable
|
||||||
|
((symbol) @variable.builtin
|
||||||
|
(#eq? @variable.builtin "."))
|
||||||
|
|
||||||
|
(symbol) @variable
|
||||||
|
|
||||||
|
|
||||||
|
["(" ")" "[" "]" "{" "}"] @punctuation.bracket
|
||||||
|
|
5
runtime/queries/scheme/injections.scm
Normal file
5
runtime/queries/scheme/injections.scm
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
((comment) @injection.content
|
||||||
|
(#set! injection.language "comment"))
|
||||||
|
|
||||||
|
((block_comment) @injection.content
|
||||||
|
(#set! injection.language "comment"))
|
Loading…
Reference in New Issue
Block a user