forked from Mirrors/helix
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
1.1 KiB
Scheme
77 lines
1.1 KiB
Scheme
; Identifiers
|
|
|
|
[
|
|
(field)
|
|
(field_identifier)
|
|
] @variable.other.member
|
|
|
|
(variable) @variable
|
|
|
|
; Function calls
|
|
|
|
(function_call
|
|
function: (identifier) @function)
|
|
|
|
(method_call
|
|
method: (selector_expression
|
|
field: (field_identifier) @function))
|
|
|
|
; Operators
|
|
|
|
"|" @operator
|
|
":=" @operator
|
|
|
|
; Builtin functions
|
|
|
|
((identifier) @function.builtin
|
|
(#match? @function.builtin "^(and|call|html|index|slice|js|len|not|or|print|printf|println|urlquery|eq|ne|lt|ge|gt|ge)$"))
|
|
|
|
; Delimiters
|
|
|
|
"." @punctuation.delimiter
|
|
"," @punctuation.delimiter
|
|
|
|
"{{" @punctuation.bracket
|
|
"}}" @punctuation.bracket
|
|
"{{-" @punctuation.bracket
|
|
"-}}" @punctuation.bracket
|
|
")" @punctuation.bracket
|
|
"(" @punctuation.bracket
|
|
|
|
; Keywords
|
|
|
|
"else" @keyword
|
|
"if" @keyword
|
|
"range" @keyword
|
|
"with" @keyword
|
|
"end" @keyword
|
|
"template" @keyword
|
|
"define" @keyword
|
|
"block" @keyword
|
|
|
|
; Literals
|
|
|
|
[
|
|
(interpreted_string_literal)
|
|
(raw_string_literal)
|
|
(rune_literal)
|
|
] @string
|
|
|
|
(escape_sequence) @string.special
|
|
|
|
[
|
|
(int_literal)
|
|
(float_literal)
|
|
(imaginary_literal)
|
|
] @constant.numeric.integer
|
|
|
|
[
|
|
(true)
|
|
(false)
|
|
] @constant.builtin.boolean
|
|
|
|
(nil) @constant.builtin
|
|
|
|
(comment) @comment
|
|
(ERROR) @error
|