mirror of https://github.com/helix-editor/helix
Add Scheme support
Skipped scm for now :/ it overlaps with tree-sitter-tsqpull/2530/head
parent
6bd8924436
commit
d25bae844c
@ -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
|
||||
|
@ -0,0 +1,5 @@
|
||||
((comment) @injection.content
|
||||
(#set! injection.language "comment"))
|
||||
|
||||
((block_comment) @injection.content
|
||||
(#set! injection.language "comment"))
|
Loading…
Reference in New Issue