177 lines
2.5 KiB
Scheme
177 lines
2.5 KiB
Scheme
;---Most generic types---
|
|
(module) @module
|
|
|
|
(identifier) @variable
|
|
|
|
(concrete_type) @type
|
|
|
|
;---annotations----
|
|
(annotation_type_def
|
|
(annotation_pre_colon
|
|
(identifier) @type))
|
|
|
|
(annotation_type_def
|
|
(annotation_pre_colon
|
|
(identifier) @function)
|
|
(function_type))
|
|
|
|
;----decleration types----
|
|
(value_declaration
|
|
(decl_left
|
|
(identifier_pattern
|
|
(identifier) @variable.parameter)))
|
|
|
|
;---records----
|
|
(field_name) @variable.member
|
|
|
|
(record_field_pattern
|
|
(_
|
|
(identifier) @variable))
|
|
|
|
;matches the second identifier and all subsequent ones
|
|
(field_access_expr
|
|
(identifier) @variable.member)
|
|
|
|
;highlight module members as records instead of free variables
|
|
; avoids highlighting them as out-of-scope vars
|
|
(variable_expr
|
|
(module) (identifier) @variable.member)
|
|
|
|
;----comments----
|
|
(line_comment) @comment @spell
|
|
|
|
(doc_comment) @comment.documentation @spell
|
|
|
|
;-----Punctuation----
|
|
[
|
|
"?"
|
|
(arrow)
|
|
(fat_arrow)
|
|
"|"
|
|
","
|
|
":"
|
|
] @punctuation.delimiter
|
|
|
|
[
|
|
"("
|
|
")"
|
|
"{"
|
|
"}"
|
|
"["
|
|
"]"
|
|
] @punctuation.bracket
|
|
|
|
[
|
|
"|"
|
|
"&"
|
|
"<-"
|
|
".."
|
|
(operator)
|
|
] @operator
|
|
|
|
(wildcard_pattern) @constant.builtin
|
|
|
|
[
|
|
"if"
|
|
"then"
|
|
"else"
|
|
] @keyword.conditional
|
|
|
|
[
|
|
(implements)
|
|
(when)
|
|
(is)
|
|
"as"
|
|
(to)
|
|
] @keyword
|
|
|
|
;----headers-----
|
|
|
|
[
|
|
"app"
|
|
"expect"
|
|
"module"
|
|
"package"
|
|
"import"
|
|
] @keyword
|
|
|
|
[
|
|
(import_as)
|
|
"imports"
|
|
] @keyword.import
|
|
|
|
|
|
(value_declaration
|
|
(decl_left
|
|
(identifier_pattern
|
|
(identifier) @function))
|
|
(expr_body
|
|
(anon_fun_expr)))
|
|
|
|
;----tags----
|
|
(tags_type
|
|
(tag_type) @constructor)
|
|
|
|
[
|
|
(tag)
|
|
(opaque_tag)
|
|
] @constructor
|
|
|
|
;-----builtins----
|
|
(variable_expr
|
|
(module) @module
|
|
(identifier) @boolean
|
|
(#any-of? @boolean "true" "false")
|
|
(#eq? @module "Bool"))
|
|
|
|
"dbg" @keyword.debug
|
|
|
|
;----function invocations ----
|
|
(function_call_pnc_expr
|
|
caller: (variable_expr
|
|
(identifier) @function.call))
|
|
|
|
(function_call_pnc_expr
|
|
caller: (field_access_expr
|
|
(identifier) @function.call .))
|
|
|
|
(bin_op_expr
|
|
(operator
|
|
"|>") @operator
|
|
(variable_expr
|
|
(identifier) @function))
|
|
|
|
;----function arguments----
|
|
(argument_patterns
|
|
(identifier_pattern
|
|
(identifier) @variable.parameter))
|
|
|
|
(argument_patterns
|
|
(_
|
|
(identifier_pattern
|
|
(identifier) @variable.parameter)))
|
|
|
|
(argument_patterns
|
|
(_
|
|
(_
|
|
(identifier_pattern
|
|
(identifier) @variable.parameter))))
|
|
|
|
;-----consts-----
|
|
[
|
|
(int)
|
|
(uint)
|
|
(iint)
|
|
(xint)
|
|
(natural)
|
|
] @number
|
|
|
|
[
|
|
(decimal)
|
|
(float)
|
|
] @number.float
|
|
|
|
(string) @string
|
|
(multiline_string) @string
|
|
|
|
(char) @character
|