mirror of
https://github.com/helix-editor/helix.git
synced 2024-11-22 01:16:18 +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]]
|
||||
name = "sshclientconfig"
|
||||
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