; Tree-sitter highlights for GROQ language ; This file defines syntax highlighting for GROQ in Neovim ; Keywords [ "select" "asc" "desc" ] @keyword [ "in" "match" ] @keyword.operator ; Operators [ "==" "!=" ">" ">=" "<" "<=" "&&" "||" "!" "+" "-" "*" "/" "%" "**" ".." "..." "=>" "->" "|" ] @operator ; Punctuation [ "(" ")" "[" "]" "{" "}" ] @punctuation.bracket [ "," ":" "." ] @punctuation.delimiter ; Literals (string) @string (number) @number (true) @boolean (false) @boolean (null) @constant.builtin ; Special references (star) @constant.builtin (parent) @constant.builtin (this) @constant.builtin ; Identifiers (identifier) @variable ; Parameters (parameter) @variable.parameter ; Function calls (function_call (identifier) @function) (order_function "order" @function.builtin) ; Comments (comment) @comment ; Projections and objects (projection "{" @punctuation.bracket "}" @punctuation.bracket) (object "{" @punctuation.bracket "}" @punctuation.bracket) ; Conditional projections (conditional_projection "=>" @operator) ; Select statements (select_statement "..." @operator "select" @keyword "=>" @operator) ; Spread operators (spread_operator "..." @operator) ; Array access (attribute_access "." @punctuation.delimiter) ; String keys in projections/objects (pair (literal (string) @property)) ; Highlight field names in projections (projection (identifier) @property) ; Built-in functions (essential GROQ functions) (function_call (identifier) @function.builtin (#any-of? @function.builtin "count" "length" "defined" "references" "now" "dateTime" "coalesce" "unique" "max" "min" "sum" "avg" "round" "floor" "ceil" "abs" "sqrt" "upper" "lower" "string" "number" "boolean" "array" "object" "type" "global" "sanity" "path" "delta" "after" "before"))