nvim-treesitter/runtime/queries/groq/highlights.scm
2025-07-17 18:08:26 +01:00

229 lines
4.4 KiB
Scheme

;; Tree-sitter highlights for GROQ language
;; This file defines syntax highlighting for GROQ in Neovim
;; Keywords
"select" @keyword
"asc" @keyword
"desc" @keyword
"in" @keyword.operator
"match" @keyword.operator
;; Operators
"==" @operator
"!=" @operator
">" @operator
">=" @operator
"<" @operator
"<=" @operator
"&&" @operator
"||" @operator
"!" @operator
"+" @operator
"-" @operator
"*" @operator
"/" @operator
"%" @operator
"**" @operator
".." @operator
"..." @operator
"=>" @operator
"->" @operator
"|" @operator
;; Punctuation
"(" @punctuation.bracket
")" @punctuation.bracket
"[" @punctuation.bracket
"]" @punctuation.bracket
"{" @punctuation.bracket
"}" @punctuation.bracket
"," @punctuation.delimiter
":" @punctuation.delimiter
"." @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
(#eq? @function.builtin "count"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "length"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "defined"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "references"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "now"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "dateTime"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "coalesce"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "unique"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "max"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "min"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "sum"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "avg"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "round"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "floor"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "ceil"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "abs"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "sqrt"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "upper"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "lower"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "string"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "number"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "boolean"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "array"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "object"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "type"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "global"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "sanity"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "path"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "delta"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "after"))
(function_call
(identifier) @function.builtin
(#eq? @function.builtin "before"))