feat(groq): add parser and queries (#8008)

This commit is contained in:
Alan Russell 2025-07-18 17:04:42 +01:00 committed by GitHub
parent a5edb0a274
commit 61ec748ef7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 142 additions and 0 deletions

View file

@ -0,0 +1,5 @@
[
(object)
(projection)
(array)
] @fold

View file

@ -0,0 +1,104 @@
; Keywords
[
"select"
"asc"
"desc"
] @keyword
[
"in"
"match"
] @keyword.operator
; Operators
[
"=="
"!="
">"
">="
"<"
"<="
"&&"
"||"
"!"
"+"
"-"
"*"
"/"
"%"
"**"
".."
"..."
"=>"
"->"
"|"
] @operator
; Punctuation
[
"("
")"
"["
"]"
"{"
"}"
] @punctuation.bracket
[
","
":"
"."
] @punctuation.delimiter
; Literals
(string) @string
(number) @number
[
(true)
(false)
] @boolean
; Special references
[
(null)
(star)
(parent)
(this)
] @constant.builtin
; Identifiers
(identifier) @variable
; Parameters
(parameter
"$" @variable.parameter
(identifier) @variable.parameter)
; Function calls
(function_call
(identifier) @function)
(order_function
"order" @function.builtin)
; Comments
(comment) @comment @spell
; 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"))

View file

@ -0,0 +1,11 @@
[
(object)
(projection)
] @indent.begin
[
"{"
"}"
] @indent.branch
"}" @indent.end

View file

@ -0,0 +1,2 @@
((comment) @injection.content
(#set! injection.language "comment"))