Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'runtime/queries/cue/highlights.scm')
| -rw-r--r-- | runtime/queries/cue/highlights.scm | 173 |
1 files changed, 109 insertions, 64 deletions
diff --git a/runtime/queries/cue/highlights.scm b/runtime/queries/cue/highlights.scm index aef016e8..4168036b 100644 --- a/runtime/queries/cue/highlights.scm +++ b/runtime/queries/cue/highlights.scm @@ -1,12 +1,46 @@ -(package_clause "package" @keyword.control.import) +; Includes +[ + "package" + "import" +] @keyword.control.import -(package_identifier) @variable +; Namespaces +(package_identifier) @namespace -(import_declaration "import" @keyword.control.import) +(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 +[ + "+" + "-" "*" + "/" "|" "&" "||" @@ -19,92 +53,103 @@ ">=" "=~" "!~" - "+" - "-" - "*" - "/" + "!" + "=" ] @operator -(unary_expression "*" @operator.default) - -(unary_expression "=~" @operator.regexp) - -(unary_expression "!~" @operator.regexp) - -(binary_expression _ "&" @operator.unify _) - -(binary_expression _ "|" @operator.disjunct _) +; Fields & Properties +(field + (label + (identifier) @variable.other.member)) -(builtin) @function.builtin +(selector_expression + (_) + (identifier) @variable.other.member) -(qualified_identifier) @function.builtin +; Functions +(call_expression + function: (identifier) @function) -(let_clause "let" @keyword.storage.type) +(call_expression + function: (selector_expression + (_) + (identifier) @function)) -(for_clause "for" @keyword.control.repeat) -(for_clause "in" @keyword.control.repeat) +(call_expression + function: (builtin_function) @function) -(guard_clause "if" @keyword.control.conditional) +(builtin_function) @function.builtin -(comment) @comment +; Variables +(identifier) @variable -[ - (string_type) - (simple_string_lit) - (multiline_string_lit) - (bytes_type) - (simple_bytes_lit) - (multiline_bytes_lit) -] @string +; Types +(primitive_type) @type.builtin -[ - (number_type) - (int_lit) - (int_type) - (uint_type) -] @constant.numeric.integer +((identifier) @type + (#match? @type "^_?#")) [ - (float_lit) - (float_type) -] @constant.numeric.float - -[ - (bool_type) - (true) - (false) -] @constant.builtin.boolean - -(null) @constant.builtin - -(ellipsis) @punctuation.bracket + (slice_type) + (pointer_type) +] @type ; In attributes +; Punctuation [ "," ":" ] @punctuation.delimiter [ - "(" - ")" - "[" - "]" "{" "}" + "[" + "]" + "(" + ")" + "<" + ">" ] @punctuation.bracket -(interpolation "\\(" @punctuation.bracket (_) ")" @punctuation.bracket) @variable.other.member +[ + (ellipsis) + "?" +] @punctuation.special + +; Literals +(string) @string -(field (label (identifier) @variable.other.member)) +[ + (escape_char) + (escape_unicode) +] @constant.character.escape -( - (identifier) @keyword.storage.type - (#match? @keyword.storage.type "^#") -) +(number) @constant.numeric -(field (label alias: (identifier) @label)) +(float) @constant.numeric.float -(let_clause left: (identifier) @label) +(si_unit + (float) + (_) @string.special.symbol) +(boolean) @constant.builtin.boolean -(attribute (identifier) @tag) +[ + (null) + (top) + (bottom) +] @constant.builtin + +; Interpolations +(interpolation + "\\(" @punctuation.special + (_) + ")" @punctuation.special) + +(interpolation + "\\(" + (identifier) @variable + ")") + +; Comments +(comment) @comment |