mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-01-24 05:30:07 +08:00
172 lines
2.3 KiB
Scheme
172 lines
2.3 KiB
Scheme
;; Text
|
|
|
|
;; Imports
|
|
|
|
(missing_import) @include
|
|
|
|
(local_import) @string.special.path
|
|
|
|
(http_import) @string @text.uri
|
|
|
|
[
|
|
(env_variable)
|
|
(import_hash)
|
|
] @string.special
|
|
|
|
[ (import_as_location) (import_as_text) ] @type
|
|
|
|
;; Types
|
|
|
|
([
|
|
(let_binding (label) @type)
|
|
(union_type_entry (label) @type)
|
|
] (#lua-match? @type "^%u"))
|
|
|
|
((primitive_expression
|
|
(identifier (label) @type)
|
|
(selector (label) @type)) @variable
|
|
(#vim-match? @variable "^[A-Z][^.]*$"))
|
|
|
|
;; Parameters
|
|
|
|
(lambda_expression label: (label) @parameter)
|
|
|
|
;; Variables
|
|
|
|
(label) @variable
|
|
|
|
(identifier [
|
|
(label) @variable
|
|
(de_bruijn_index) @operator
|
|
])
|
|
|
|
(let_binding label: (label) @variable)
|
|
|
|
; Fields
|
|
|
|
(record_literal_entry (label) @field)
|
|
|
|
(record_type_entry (label) @field)
|
|
|
|
(selector
|
|
(selector_dot)
|
|
(_) @field)
|
|
|
|
;; Keywords
|
|
|
|
(env_import) @keyword
|
|
|
|
[
|
|
"let"
|
|
"in"
|
|
"assert"
|
|
] @keyword
|
|
|
|
[
|
|
"using"
|
|
"as"
|
|
"with"
|
|
] @keyword.operator
|
|
|
|
;; Operators
|
|
|
|
[
|
|
(type_operator)
|
|
(assign_operator)
|
|
(lambda_operator)
|
|
(arrow_operator)
|
|
(infix_operator)
|
|
(completion_operator)
|
|
(assert_operator)
|
|
(forall_operator)
|
|
(empty_record_literal)
|
|
] @operator
|
|
|
|
;; Builtins
|
|
|
|
(builtin_function) @function.builtin
|
|
(builtin [
|
|
"Natural"
|
|
"Natural/build"
|
|
"Natural/fold"
|
|
"Natural/isZero"
|
|
"Natural/even"
|
|
"Natural/odd"
|
|
"Natural/subtract"
|
|
"Natural/toInteger"
|
|
"Natural/show"
|
|
"Integer"
|
|
"Integer/toDouble"
|
|
"Integer/show"
|
|
"Integer/negate"
|
|
"Integer/clamp"
|
|
"Double"
|
|
"Double/show"
|
|
"List"
|
|
"List/build"
|
|
"List/fold"
|
|
"List/length"
|
|
"List/head"
|
|
"List/last"
|
|
"List/indexed"
|
|
"List/reverse"
|
|
"Text"
|
|
"Text/show"
|
|
"Text/replace"
|
|
"Optional"
|
|
"Date"
|
|
"Time"
|
|
"TimeZone"
|
|
"Type"
|
|
"Kind"
|
|
"Sort"
|
|
] @type.builtin)
|
|
|
|
;; Punctuation
|
|
|
|
[ "," "|" ] @punctuation.delimiter
|
|
(selector_dot) @punctuation.delimiter
|
|
|
|
[ "{" "}" ] @punctuation.bracket
|
|
|
|
[ "[" "]" ] @punctuation.bracket
|
|
|
|
[ "(" ")" ] @punctuation.bracket
|
|
|
|
[ "<" ">" ] @punctuation.bracket
|
|
|
|
;; Conditionals
|
|
|
|
[
|
|
"if"
|
|
"then"
|
|
"else"
|
|
] @conditional
|
|
|
|
;; Literals
|
|
|
|
(text_literal) @string
|
|
(interpolation "}" @string)
|
|
[
|
|
(double_quote_escaped)
|
|
(single_quote_escaped)
|
|
] @string.escape
|
|
|
|
[
|
|
(integer_literal)
|
|
(natural_literal)
|
|
] @number
|
|
|
|
(double_literal) @float
|
|
|
|
(boolean_literal) @boolean
|
|
|
|
(builtin "None") @constant.builtin
|
|
|
|
;; Comments
|
|
|
|
[
|
|
(line_comment)
|
|
(block_comment)
|
|
] @comment @spell
|