summaryrefslogtreecommitdiffstats
path: root/queries/jsonnet/highlights.scm
blob: e7ea6d8bb2918f92e9d7972966df94c6067dde87 (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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
(id) @variable
(comment) @comment @spell

; Literals
(null) @constant.builtin
(string) @string
(number) @number
[
  (true)
  (false)
] @boolean

; Keywords
"for" @repeat
"in" @keyword.operator
"function" @keyword.function

[
  "if"
  "then"
  "else"
] @conditional

[
  (local)
  (tailstrict)
  "function"
] @keyword

[
  "assert"
  "error"
] @exception

[
  (dollar)
  (self)
  (super)
] @variable.builtin
((id) @variable.builtin
 (#eq? @variable.builtin "std"))

; Operators
[
  (multiplicative)
  (additive)
  (bitshift)
  (comparison)
  (equality)
  (bitand)
  (bitxor)
  (bitor)
  (and)
  (or)
  (unaryop)
] @operator

; Punctuation
[
  "["
  "]"
  "{"
  "}"
  "("
  ")"
] @punctuation.bracket

[
  "."
  ","
  ";"
  ":"
] @punctuation.delimiter

[
  "::"
  ":::"
] @punctuation.special

(field
  (fieldname) "+" @punctuation.special)

; Imports
[
  (import)
  (importstr)
] @include

; Fields

(fieldname (id) @field)
(fieldname (string (string_content) @field))

; Functions
(field
  function: (fieldname (id) @function))
(field
  function: (fieldname
              (string (string_content) @function)))
(param
  identifier: (id) @parameter)

(bind (id) @variable.local)
(bind function: (id) @function)

; Function call
(functioncall
  (fieldaccess
    last: (id) @function.call)?
  (fieldaccess_super
    (id) @function.call)?
  (id)? @function.call
  "("
  (args
    (named_argument
      (id) @parameter
    ))?
  ")")