aboutsummaryrefslogtreecommitdiffstats
path: root/runtime/queries/groq/highlights.scm
blob: e320e42c3cf4235157e35fc148568f81519075d3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
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"))