85 lines
1.3 KiB
Scheme
85 lines
1.3 KiB
Scheme
(comment) @comment @spell
|
|
(annot_atom doc: (static_string) @spell)
|
|
|
|
[
|
|
"forall"
|
|
"in"
|
|
"let"
|
|
"default"
|
|
"doc"
|
|
"rec"
|
|
"optional"
|
|
"priority"
|
|
"force"
|
|
"not_exported"
|
|
] @keyword
|
|
|
|
"fun" @keyword.function
|
|
|
|
"import" @include
|
|
|
|
[ "if" "then" "else" ] @conditional
|
|
"match" @conditional
|
|
|
|
(types) @type
|
|
"Array" @type.builtin
|
|
|
|
; BUILTIN Constants
|
|
(bool) @boolean
|
|
"null" @constant.builtin
|
|
(enum_tag) @constant
|
|
|
|
(num_literal) @number
|
|
|
|
(infix_op) @operator
|
|
|
|
(type_atom) @type
|
|
|
|
(chunk_literal_single) @string
|
|
(chunk_literal_multi) @string
|
|
|
|
(str_esc_char) @string.escape
|
|
|
|
[
|
|
"{" "}"
|
|
"(" ")"
|
|
"[|" "|]"
|
|
] @punctuation.bracket
|
|
|
|
[
|
|
","
|
|
"."
|
|
":"
|
|
"="
|
|
"|"
|
|
"->"
|
|
"+"
|
|
"-"
|
|
"*"
|
|
] @punctuation.delimiter
|
|
|
|
(multstr_start) @punctuation.bracket
|
|
(multstr_end) @punctuation.bracket
|
|
(interpolation_start) @punctuation.bracket
|
|
(interpolation_end) @punctuation.bracket
|
|
|
|
(record_field) @field
|
|
|
|
(builtin) @function.builtin
|
|
|
|
(fun_expr pats:
|
|
(pattern_fun
|
|
(ident) @parameter
|
|
)
|
|
)
|
|
|
|
; application where the head terms is an identifier: function arg1 arg2 arg3
|
|
(applicative t1:
|
|
(applicative (record_operand (atom (ident))) @function)
|
|
)
|
|
|
|
; application where the head terms is a record field path: foo.bar.function arg1 arg2 arg3
|
|
(applicative t1:
|
|
(applicative (record_operand (record_operation_chain)) @function)
|
|
)
|