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.
helix/runtime/queries/cue/highlights.scm

156 lines
1.8 KiB
Scheme

; Includes
[
"package"
"import"
] @keyword.control.import
; Namespaces
(package_identifier) @namespace
(import_spec
[
"."
"_"
] @punctuation.special)
[
(attr_path)
(package_path)
] @string.special.url ; In attributes
; Attributes
(attribute) @attribute
; Conditionals
"if" @keyword.control.conditional
; Repeats
"for" @keyword.control.repeat
(for_clause
"_" @punctuation.special)
; Keywords
"let" @keyword
"in" @keyword.operator
; Operators
[
"+"
"-"
"*"
"/"
"|"
"&"
"||"
"&&"
"=="
"!="
"<"
"<="
">"
">="
"=~"
"!~"
"!"
"="
] @operator
; Fields & Properties
(field
(label
(identifier) @variable.other.member))
(selector_expression
(_)
(identifier) @variable.other.member)
; Functions
(call_expression
function: (identifier) @function)
(call_expression
function: (selector_expression
(_)
(identifier) @function))
(call_expression
function: (builtin_function) @function)
(builtin_function) @function.builtin
; Variables
(identifier) @variable
; Types
(primitive_type) @type.builtin
((identifier) @type
(#match? @type "^_?#"))
[
(slice_type)
(pointer_type)
] @type ; In attributes
; Punctuation
[
","
":"
] @punctuation.delimiter
[
"{"
"}"
"["
"]"
"("
")"
"<"
">"
] @punctuation.bracket
[
(ellipsis)
"?"
] @punctuation.special
; Literals
(string) @string
[
(escape_char)
(escape_unicode)
] @constant.character.escape
(number) @constant.numeric
(float) @constant.numeric.float
(si_unit
(float)
(_) @string.special.symbol)
(boolean) @constant.builtin.boolean
[
(null)
(top)
(bottom)
] @constant.builtin
; Interpolations
(interpolation
"\\(" @punctuation.special
(_)
")" @punctuation.special)
(interpolation
"\\("
(identifier) @variable
")")
; Comments
(comment) @comment