nvim-treesitter/runtime/queries/groq/highlights.scm

268 lines
4.4 KiB
Scheme
Raw Normal View History

2025-07-17 21:10:37 +01:00
; Tree-sitter highlights for GROQ language
; This file defines syntax highlighting for GROQ in Neovim
; Keywords
"select" @keyword
2025-07-17 21:10:37 +01:00
"asc" @keyword
2025-07-17 21:10:37 +01:00
"desc" @keyword
2025-07-17 21:10:37 +01:00
"in" @keyword.operator
2025-07-17 21:10:37 +01:00
"match" @keyword.operator
2025-07-17 21:10:37 +01:00
; Operators
"==" @operator
2025-07-17 21:10:37 +01:00
"!=" @operator
2025-07-17 21:10:37 +01:00
">" @operator
2025-07-17 21:10:37 +01:00
">=" @operator
2025-07-17 21:10:37 +01:00
"<" @operator
2025-07-17 21:10:37 +01:00
"<=" @operator
2025-07-17 21:10:37 +01:00
"&&" @operator
2025-07-17 21:10:37 +01:00
"||" @operator
2025-07-17 21:10:37 +01:00
"!" @operator
2025-07-17 21:10:37 +01:00
"+" @operator
2025-07-17 21:10:37 +01:00
"-" @operator
2025-07-17 21:10:37 +01:00
"*" @operator
2025-07-17 21:10:37 +01:00
"/" @operator
2025-07-17 21:10:37 +01:00
"%" @operator
2025-07-17 21:10:37 +01:00
"**" @operator
2025-07-17 21:10:37 +01:00
".." @operator
2025-07-17 21:10:37 +01:00
"..." @operator
2025-07-17 21:10:37 +01:00
"=>" @operator
2025-07-17 21:10:37 +01:00
"->" @operator
2025-07-17 21:10:37 +01:00
"|" @operator
2025-07-17 21:10:37 +01:00
; Punctuation
"(" @punctuation.bracket
2025-07-17 21:10:37 +01:00
")" @punctuation.bracket
2025-07-17 21:10:37 +01:00
"[" @punctuation.bracket
2025-07-17 21:10:37 +01:00
"]" @punctuation.bracket
2025-07-17 21:10:37 +01:00
"{" @punctuation.bracket
2025-07-17 21:10:37 +01:00
"}" @punctuation.bracket
2025-07-17 21:10:37 +01:00
"," @punctuation.delimiter
2025-07-17 21:10:37 +01:00
":" @punctuation.delimiter
2025-07-17 21:10:37 +01:00
"." @punctuation.delimiter
2025-07-17 21:10:37 +01:00
; Literals
(string) @string
2025-07-17 21:10:37 +01:00
(number) @number
2025-07-17 21:10:37 +01:00
(true) @boolean
2025-07-17 21:10:37 +01:00
(false) @boolean
2025-07-17 21:10:37 +01:00
(null) @constant.builtin
2025-07-17 21:10:37 +01:00
; Special references
(star) @constant.builtin
2025-07-17 21:10:37 +01:00
(parent) @constant.builtin
2025-07-17 21:10:37 +01:00
(this) @constant.builtin
2025-07-17 21:10:37 +01:00
; Identifiers
(identifier) @variable
2025-07-17 21:10:37 +01:00
; Parameters
(parameter) @variable.parameter
2025-07-17 21:10:37 +01:00
; Function calls
(function_call
(identifier) @function)
(order_function
"order" @function.builtin)
2025-07-17 21:10:37 +01:00
; Comments
(comment) @comment
2025-07-17 21:10:37 +01:00
; Projections and objects
(projection
"{" @punctuation.bracket
"}" @punctuation.bracket)
(object
"{" @punctuation.bracket
"}" @punctuation.bracket)
2025-07-17 21:10:37 +01:00
; Conditional projections
(conditional_projection
"=>" @operator)
2025-07-17 21:10:37 +01:00
; Select statements
(select_statement
"..." @operator
"select" @keyword
"=>" @operator)
2025-07-17 21:10:37 +01:00
; Spread operators
(spread_operator
"..." @operator)
2025-07-17 21:10:37 +01:00
; Array access
(attribute_access
"." @punctuation.delimiter)
2025-07-17 21:10:37 +01:00
; String keys in projections/objects
(pair
2025-07-17 21:10:37 +01:00
(literal
(string) @property))
2025-07-17 21:10:37 +01:00
; Highlight field names in projections
(projection
(identifier) @property)
2025-07-17 21:10:37 +01:00
; 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"))