github-linguist 7.7.0 → 7.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/grammars/annotation.liquidhaskell.haskell.json +47 -0
  3. data/grammars/hidden.manref.json +1 -1
  4. data/grammars/hint.haskell.json +47 -0
  5. data/grammars/hint.message.haskell.json +47 -0
  6. data/grammars/hint.type.haskell.json +47 -0
  7. data/grammars/markdown.plantuml.codeblock.json +26 -0
  8. data/grammars/source.4dm.json +1100 -0
  9. data/grammars/source.abap.json +1 -1
  10. data/grammars/source.agda.json +32 -202
  11. data/grammars/source.ahk.json +6 -2
  12. data/grammars/source.chapel.json +4 -4
  13. data/grammars/source.csound.json +1 -1
  14. data/grammars/source.dart.json +57 -31
  15. data/grammars/source.dircolors.json +101 -3
  16. data/grammars/source.editorconfig.json +23 -5
  17. data/grammars/source.elixir.json +8 -0
  18. data/grammars/source.elm.json +1 -1
  19. data/grammars/source.emacs.lisp.json +10 -0
  20. data/grammars/source.faust.json +119 -0
  21. data/grammars/source.gcode.json +166 -8
  22. data/grammars/source.hack.json +4 -18
  23. data/grammars/source.haskell.json +47 -0
  24. data/grammars/source.hlsl.json +9 -5
  25. data/grammars/source.hsig.json +47 -0
  26. data/grammars/source.hx.json +4 -0
  27. data/grammars/source.igor.json +44 -0
  28. data/grammars/source.julia.json +25 -21
  29. data/grammars/source.lean.json +19 -3
  30. data/grammars/source.lean.markdown.json +2598 -0
  31. data/grammars/source.matlab.json +215 -152
  32. data/grammars/source.mcfunction-snapshot.json +1 -1
  33. data/grammars/source.meson.json +1 -1
  34. data/grammars/source.mrc.json +416 -534
  35. data/grammars/source.nasl.json +155 -0
  36. data/grammars/source.nextflow.json +2 -2
  37. data/grammars/source.odin-ehr.json +806 -0
  38. data/grammars/source.odin.json +402 -0
  39. data/grammars/source.prisma.json +7 -0
  40. data/grammars/source.qasm.json +66 -0
  41. data/grammars/source.ql.json +1408 -0
  42. data/grammars/source.scala.json +27 -3
  43. data/grammars/source.sy.json +2088 -183
  44. data/grammars/source.terraform.json +576 -132
  45. data/grammars/source.tnsaudit.json +256 -0
  46. data/grammars/source.ts.json +89 -30
  47. data/grammars/source.tsx.json +89 -30
  48. data/grammars/source.v.json +541 -788
  49. data/grammars/source.viml.json +2 -2
  50. data/grammars/source.webassembly.json +10 -0
  51. data/grammars/source.wsd.json +775 -0
  52. data/grammars/text.tex.latex.haskell.json +47 -0
  53. data/grammars/version +1 -1
  54. data/lib/linguist/VERSION +1 -1
  55. data/lib/linguist/file_blob.rb +1 -1
  56. data/lib/linguist/generated.rb +23 -3
  57. data/lib/linguist/heuristics.yml +48 -3
  58. data/lib/linguist/languages.json +1 -1
  59. data/lib/linguist/languages.yml +156 -34
  60. data/lib/linguist/lazy_blob.rb +10 -10
  61. data/lib/linguist/linguist.bundle +0 -0
  62. data/lib/linguist/samples.json +7739 -2010
  63. data/lib/linguist/shebang.rb +5 -3
  64. data/lib/linguist/vendor.yml +3 -0
  65. metadata +13 -7
  66. data/grammars/source.LS.json +0 -85
  67. data/grammars/source.MCPOST.json +0 -54
  68. data/grammars/source.MOD.json +0 -55
  69. data/grammars/source.apt.json +0 -18
  70. data/grammars/source.yaml-ext.json +0 -324
@@ -0,0 +1,1408 @@
1
+ {
2
+ "name": "QL",
3
+ "scopeName": "source.ql",
4
+ "patterns": [
5
+ {
6
+ "include": "#module-member"
7
+ }
8
+ ],
9
+ "repository": {
10
+ "abstract": {
11
+ "name": "storage.modifier.abstract.ql",
12
+ "match": "(?x)\\b(?:abstract)(?:(?!(?:[0-9A-Za-z_])))"
13
+ },
14
+ "and": {
15
+ "name": "keyword.other.and.ql",
16
+ "match": "(?x)\\b(?:and)(?:(?!(?:[0-9A-Za-z_])))"
17
+ },
18
+ "annotation": {
19
+ "patterns": [
20
+ {
21
+ "include": "#bindingset-annotation"
22
+ },
23
+ {
24
+ "include": "#language-annotation"
25
+ },
26
+ {
27
+ "include": "#pragma-annotation"
28
+ },
29
+ {
30
+ "include": "#annotation-keyword"
31
+ }
32
+ ]
33
+ },
34
+ "annotation-keyword": {
35
+ "patterns": [
36
+ {
37
+ "include": "#abstract"
38
+ },
39
+ {
40
+ "include": "#bindingset"
41
+ },
42
+ {
43
+ "include": "#cached"
44
+ },
45
+ {
46
+ "include": "#deprecated"
47
+ },
48
+ {
49
+ "include": "#external"
50
+ },
51
+ {
52
+ "include": "#final"
53
+ },
54
+ {
55
+ "include": "#language"
56
+ },
57
+ {
58
+ "include": "#library"
59
+ },
60
+ {
61
+ "include": "#override"
62
+ },
63
+ {
64
+ "include": "#pragma"
65
+ },
66
+ {
67
+ "include": "#private"
68
+ },
69
+ {
70
+ "include": "#query"
71
+ },
72
+ {
73
+ "include": "#transient"
74
+ }
75
+ ]
76
+ },
77
+ "any": {
78
+ "name": "keyword.quantifier.any.ql",
79
+ "match": "(?x)\\b(?:any)(?:(?!(?:[0-9A-Za-z_])))"
80
+ },
81
+ "arithmetic-operator": {
82
+ "name": "keyword.operator.arithmetic.ql",
83
+ "match": "(?x)\\+|-|\\*|/|%"
84
+ },
85
+ "as": {
86
+ "name": "keyword.other.as.ql",
87
+ "match": "(?x)\\b(?:as)(?:(?!(?:[0-9A-Za-z_])))"
88
+ },
89
+ "asc": {
90
+ "name": "keyword.order.asc.ql",
91
+ "match": "(?x)\\b(?:asc)(?:(?!(?:[0-9A-Za-z_])))"
92
+ },
93
+ "at-lower-id": {
94
+ "match": "(?x)@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))"
95
+ },
96
+ "avg": {
97
+ "name": "keyword.aggregate.avg.ql",
98
+ "match": "(?x)\\b(?:avg)(?:(?!(?:[0-9A-Za-z_])))"
99
+ },
100
+ "bindingset": {
101
+ "name": "storage.modifier.bindingset.ql",
102
+ "match": "(?x)\\b(?:bindingset)(?:(?!(?:[0-9A-Za-z_])))"
103
+ },
104
+ "bindingset-annotation": {
105
+ "name": "meta.block.bindingset-annotation.ql",
106
+ "begin": "(?x)((?:\\b(?:bindingset)(?:(?!(?:[0-9A-Za-z_])))))",
107
+ "end": "(?x)(?! \\s | (?:// | /\\*) | \\[ ) | (?\u003c=\\])",
108
+ "patterns": [
109
+ {
110
+ "include": "#bindingset-annotation-body"
111
+ },
112
+ {
113
+ "include": "#non-context-sensitive"
114
+ }
115
+ ],
116
+ "beginCaptures": {
117
+ "1": {
118
+ "patterns": [
119
+ {
120
+ "include": "#bindingset"
121
+ }
122
+ ]
123
+ }
124
+ }
125
+ },
126
+ "bindingset-annotation-body": {
127
+ "name": "meta.block.bindingset-annotation-body.ql",
128
+ "begin": "(?x)((?:\\[))",
129
+ "end": "(?x)((?:\\]))",
130
+ "patterns": [
131
+ {
132
+ "include": "#non-context-sensitive"
133
+ },
134
+ {
135
+ "name": "variable.parameter.ql",
136
+ "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
137
+ }
138
+ ],
139
+ "beginCaptures": {
140
+ "1": {
141
+ "patterns": [
142
+ {
143
+ "include": "#open-bracket"
144
+ }
145
+ ]
146
+ }
147
+ },
148
+ "endCaptures": {
149
+ "1": {
150
+ "patterns": [
151
+ {
152
+ "include": "#close-bracket"
153
+ }
154
+ ]
155
+ }
156
+ }
157
+ },
158
+ "boolean": {
159
+ "name": "keyword.type.boolean.ql",
160
+ "match": "(?x)\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_])))"
161
+ },
162
+ "by": {
163
+ "name": "keyword.order.by.ql",
164
+ "match": "(?x)\\b(?:by)(?:(?!(?:[0-9A-Za-z_])))"
165
+ },
166
+ "cached": {
167
+ "name": "storage.modifier.cached.ql",
168
+ "match": "(?x)\\b(?:cached)(?:(?!(?:[0-9A-Za-z_])))"
169
+ },
170
+ "class": {
171
+ "name": "keyword.other.class.ql",
172
+ "match": "(?x)\\b(?:class)(?:(?!(?:[0-9A-Za-z_])))"
173
+ },
174
+ "class-body": {
175
+ "name": "meta.block.class-body.ql",
176
+ "begin": "(?x)((?:\\{))",
177
+ "end": "(?x)((?:\\}))",
178
+ "patterns": [
179
+ {
180
+ "include": "#class-member"
181
+ }
182
+ ],
183
+ "beginCaptures": {
184
+ "1": {
185
+ "patterns": [
186
+ {
187
+ "include": "#open-brace"
188
+ }
189
+ ]
190
+ }
191
+ },
192
+ "endCaptures": {
193
+ "1": {
194
+ "patterns": [
195
+ {
196
+ "include": "#close-brace"
197
+ }
198
+ ]
199
+ }
200
+ }
201
+ },
202
+ "class-declaration": {
203
+ "name": "meta.block.class-declaration.ql",
204
+ "begin": "(?x)((?:\\b(?:class)(?:(?!(?:[0-9A-Za-z_])))))",
205
+ "end": "(?x)(?\u003c= \\} | ; )",
206
+ "patterns": [
207
+ {
208
+ "include": "#class-body"
209
+ },
210
+ {
211
+ "include": "#extends-clause"
212
+ },
213
+ {
214
+ "include": "#non-context-sensitive"
215
+ },
216
+ {
217
+ "name": "entity.name.type.class.ql",
218
+ "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
219
+ }
220
+ ],
221
+ "beginCaptures": {
222
+ "1": {
223
+ "patterns": [
224
+ {
225
+ "include": "#class"
226
+ }
227
+ ]
228
+ }
229
+ }
230
+ },
231
+ "class-member": {
232
+ "patterns": [
233
+ {
234
+ "include": "#predicate-or-field-declaration"
235
+ },
236
+ {
237
+ "include": "#annotation"
238
+ },
239
+ {
240
+ "include": "#non-context-sensitive"
241
+ }
242
+ ]
243
+ },
244
+ "close-brace": {
245
+ "name": "punctuation.curlybrace.close.ql",
246
+ "match": "(?x)\\}"
247
+ },
248
+ "close-bracket": {
249
+ "name": "punctuation.squarebracket.close.ql",
250
+ "match": "(?x)\\]"
251
+ },
252
+ "close-paren": {
253
+ "name": "punctuation.parenthesis.close.ql",
254
+ "match": "(?x)\\)"
255
+ },
256
+ "comma": {
257
+ "name": "punctuation.separator.comma.ql",
258
+ "match": "(?x),"
259
+ },
260
+ "comment": {
261
+ "patterns": [
262
+ {
263
+ "name": "comment.block.documentation.ql",
264
+ "begin": "(?x)/\\*\\*",
265
+ "end": "(?x)\\*/",
266
+ "patterns": [
267
+ {
268
+ "begin": "(?x)(?\u003c=/\\*\\*)([^*]|\\*(?!/))*$",
269
+ "while": "(?x)(^|\\G)\\s*([^*]|\\*(?!/))(?=([^*]|[*](?!/))*$)",
270
+ "patterns": [
271
+ {
272
+ "name": "keyword.tag.ql",
273
+ "match": "(?x)\\G\\s* (@\\S+)"
274
+ }
275
+ ]
276
+ }
277
+ ]
278
+ },
279
+ {
280
+ "name": "comment.block.ql",
281
+ "begin": "(?x)/\\*",
282
+ "end": "(?x)\\*/"
283
+ },
284
+ {
285
+ "name": "comment.line.double-slash.ql",
286
+ "match": "(?x)//.*$"
287
+ }
288
+ ]
289
+ },
290
+ "comment-start": {
291
+ "match": "(?x)// | /\\*"
292
+ },
293
+ "comparison-operator": {
294
+ "name": "keyword.operator.comparison.ql",
295
+ "match": "(?x)=|\\!-"
296
+ },
297
+ "concat": {
298
+ "name": "keyword.aggregate.concat.ql",
299
+ "match": "(?x)\\b(?:concat)(?:(?!(?:[0-9A-Za-z_])))"
300
+ },
301
+ "count": {
302
+ "name": "keyword.aggregate.count.ql",
303
+ "match": "(?x)\\b(?:count)(?:(?!(?:[0-9A-Za-z_])))"
304
+ },
305
+ "date": {
306
+ "name": "keyword.type.date.ql",
307
+ "match": "(?x)\\b(?:date)(?:(?!(?:[0-9A-Za-z_])))"
308
+ },
309
+ "deprecated": {
310
+ "name": "storage.modifier.deprecated.ql",
311
+ "match": "(?x)\\b(?:deprecated)(?:(?!(?:[0-9A-Za-z_])))"
312
+ },
313
+ "desc": {
314
+ "name": "keyword.order.desc.ql",
315
+ "match": "(?x)\\b(?:desc)(?:(?!(?:[0-9A-Za-z_])))"
316
+ },
317
+ "dont-care": {
318
+ "name": "variable.language.dont-care.ql",
319
+ "match": "(?x)\\b(?:_)(?:(?!(?:[0-9A-Za-z_])))"
320
+ },
321
+ "dot": {
322
+ "name": "punctuation.accessor.ql",
323
+ "match": "(?x)\\."
324
+ },
325
+ "dotdot": {
326
+ "name": "punctuation.operator.range.ql",
327
+ "match": "(?x)\\.\\."
328
+ },
329
+ "else": {
330
+ "name": "keyword.other.else.ql",
331
+ "match": "(?x)\\b(?:else)(?:(?!(?:[0-9A-Za-z_])))"
332
+ },
333
+ "end-of-as-clause": {
334
+ "match": "(?x)(?: (?\u003c=(?:[0-9A-Za-z_])) (?!(?:[0-9A-Za-z_])) (?\u003c!(?\u003c!(?:[0-9A-Za-z_]))as)) | (?=\\s* (?!(?:// | /\\*) | (?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))) \\S) | (?=\\s* (?:(?:(?:\\b(?:_)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:and)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:any)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:asc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:avg)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:by)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:class)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:concat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:count)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:desc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:else)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:exists)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:extends)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:false)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forall)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forex)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:if)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:implies)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:import)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:in)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:max)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:min)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:module)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:none)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:not)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:order)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:rank)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:result)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:sum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:super)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:then)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:this)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:true)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))))))"
335
+ },
336
+ "end-of-id": {
337
+ "match": "(?x)(?!(?:[0-9A-Za-z_]))"
338
+ },
339
+ "exists": {
340
+ "name": "keyword.quantifier.exists.ql",
341
+ "match": "(?x)\\b(?:exists)(?:(?!(?:[0-9A-Za-z_])))"
342
+ },
343
+ "expr-as-clause": {
344
+ "name": "meta.block.expr-as-clause.ql",
345
+ "begin": "(?x)((?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_])))))",
346
+ "end": "(?x)(?:(?: (?\u003c=(?:[0-9A-Za-z_])) (?!(?:[0-9A-Za-z_])) (?\u003c!(?\u003c!(?:[0-9A-Za-z_]))as)) | (?=\\s* (?!(?:// | /\\*) | (?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))) \\S) | (?=\\s* (?:(?:(?:\\b(?:_)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:and)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:any)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:asc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:avg)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:by)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:class)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:concat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:count)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:desc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:else)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:exists)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:extends)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:false)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forall)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forex)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:if)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:implies)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:import)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:in)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:max)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:min)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:module)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:none)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:not)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:order)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:rank)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:result)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:sum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:super)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:then)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:this)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:true)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))))))",
347
+ "patterns": [
348
+ {
349
+ "include": "#non-context-sensitive"
350
+ },
351
+ {
352
+ "name": "variable.other.ql",
353
+ "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
354
+ }
355
+ ],
356
+ "beginCaptures": {
357
+ "1": {
358
+ "patterns": [
359
+ {
360
+ "include": "#as"
361
+ }
362
+ ]
363
+ }
364
+ }
365
+ },
366
+ "extends": {
367
+ "name": "keyword.other.extends.ql",
368
+ "match": "(?x)\\b(?:extends)(?:(?!(?:[0-9A-Za-z_])))"
369
+ },
370
+ "extends-clause": {
371
+ "name": "meta.block.extends-clause.ql",
372
+ "begin": "(?x)((?:\\b(?:extends)(?:(?!(?:[0-9A-Za-z_])))))",
373
+ "end": "(?x)(?= \\{ )",
374
+ "patterns": [
375
+ {
376
+ "include": "#non-context-sensitive"
377
+ },
378
+ {
379
+ "name": "entity.name.type.ql",
380
+ "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
381
+ }
382
+ ],
383
+ "beginCaptures": {
384
+ "1": {
385
+ "patterns": [
386
+ {
387
+ "include": "#extends"
388
+ }
389
+ ]
390
+ }
391
+ }
392
+ },
393
+ "external": {
394
+ "name": "storage.modifier.external.ql",
395
+ "match": "(?x)\\b(?:external)(?:(?!(?:[0-9A-Za-z_])))"
396
+ },
397
+ "false": {
398
+ "name": "constant.language.boolean.false.ql",
399
+ "match": "(?x)\\b(?:false)(?:(?!(?:[0-9A-Za-z_])))"
400
+ },
401
+ "final": {
402
+ "name": "storage.modifier.final.ql",
403
+ "match": "(?x)\\b(?:final)(?:(?!(?:[0-9A-Za-z_])))"
404
+ },
405
+ "float": {
406
+ "name": "keyword.type.float.ql",
407
+ "match": "(?x)\\b(?:float)(?:(?!(?:[0-9A-Za-z_])))"
408
+ },
409
+ "float-literal": {
410
+ "name": "constant.numeric.decimal.ql",
411
+ "match": "(?x)-?[0-9]+\\.[0-9]+(?![0-9])"
412
+ },
413
+ "forall": {
414
+ "name": "keyword.quantifier.forall.ql",
415
+ "match": "(?x)\\b(?:forall)(?:(?!(?:[0-9A-Za-z_])))"
416
+ },
417
+ "forex": {
418
+ "name": "keyword.quantifier.forex.ql",
419
+ "match": "(?x)\\b(?:forex)(?:(?!(?:[0-9A-Za-z_])))"
420
+ },
421
+ "from": {
422
+ "name": "keyword.other.from.ql",
423
+ "match": "(?x)\\b(?:from)(?:(?!(?:[0-9A-Za-z_])))"
424
+ },
425
+ "from-section": {
426
+ "name": "meta.block.from-section.ql",
427
+ "begin": "(?x)((?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_])))))",
428
+ "end": "(?x)(?= (?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))) | (?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))) )",
429
+ "patterns": [
430
+ {
431
+ "include": "#non-context-sensitive"
432
+ },
433
+ {
434
+ "name": "variable.parameter.ql",
435
+ "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))(?=\\s*(?:,|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|$))"
436
+ },
437
+ {
438
+ "include": "#module-qualifier"
439
+ },
440
+ {
441
+ "name": "entity.name.type.ql",
442
+ "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
443
+ },
444
+ {
445
+ "name": "variable.parameter.ql",
446
+ "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
447
+ }
448
+ ],
449
+ "beginCaptures": {
450
+ "1": {
451
+ "patterns": [
452
+ {
453
+ "include": "#from"
454
+ }
455
+ ]
456
+ }
457
+ }
458
+ },
459
+ "id-character": {
460
+ "match": "(?x)[0-9A-Za-z_]"
461
+ },
462
+ "if": {
463
+ "name": "keyword.other.if.ql",
464
+ "match": "(?x)\\b(?:if)(?:(?!(?:[0-9A-Za-z_])))"
465
+ },
466
+ "implies": {
467
+ "name": "keyword.other.implies.ql",
468
+ "match": "(?x)\\b(?:implies)(?:(?!(?:[0-9A-Za-z_])))"
469
+ },
470
+ "import": {
471
+ "name": "keyword.other.import.ql",
472
+ "match": "(?x)\\b(?:import)(?:(?!(?:[0-9A-Za-z_])))"
473
+ },
474
+ "import-as-clause": {
475
+ "name": "meta.block.import-as-clause.ql",
476
+ "begin": "(?x)((?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_])))))",
477
+ "end": "(?x)(?:(?: (?\u003c=(?:[0-9A-Za-z_])) (?!(?:[0-9A-Za-z_])) (?\u003c!(?\u003c!(?:[0-9A-Za-z_]))as)) | (?=\\s* (?!(?:// | /\\*) | (?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))) \\S) | (?=\\s* (?:(?:(?:\\b(?:_)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:and)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:any)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:asc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:avg)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:by)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:class)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:concat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:count)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:desc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:else)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:exists)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:extends)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:false)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forall)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forex)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:if)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:implies)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:import)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:in)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:max)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:min)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:module)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:none)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:not)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:order)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:rank)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:result)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:sum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:super)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:then)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:this)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:true)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))))))",
478
+ "patterns": [
479
+ {
480
+ "include": "#non-context-sensitive"
481
+ },
482
+ {
483
+ "name": "entity.name.type.namespace.ql",
484
+ "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
485
+ }
486
+ ],
487
+ "beginCaptures": {
488
+ "1": {
489
+ "patterns": [
490
+ {
491
+ "include": "#as"
492
+ }
493
+ ]
494
+ }
495
+ }
496
+ },
497
+ "import-directive": {
498
+ "name": "meta.block.import-directive.ql",
499
+ "begin": "(?x)((?:\\b(?:import)(?:(?!(?:[0-9A-Za-z_])))))",
500
+ "end": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))) (?!\\s*(\\.|\\:\\:))",
501
+ "patterns": [
502
+ {
503
+ "include": "#non-context-sensitive"
504
+ },
505
+ {
506
+ "name": "entity.name.type.namespace.ql",
507
+ "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
508
+ }
509
+ ],
510
+ "beginCaptures": {
511
+ "1": {
512
+ "patterns": [
513
+ {
514
+ "include": "#import"
515
+ }
516
+ ]
517
+ }
518
+ },
519
+ "endCaptures": {
520
+ "0": {
521
+ "name": "entity.name.type.namespace.ql"
522
+ }
523
+ }
524
+ },
525
+ "in": {
526
+ "name": "keyword.other.in.ql",
527
+ "match": "(?x)\\b(?:in)(?:(?!(?:[0-9A-Za-z_])))"
528
+ },
529
+ "instanceof": {
530
+ "name": "keyword.other.instanceof.ql",
531
+ "match": "(?x)\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_])))"
532
+ },
533
+ "int": {
534
+ "name": "keyword.type.int.ql",
535
+ "match": "(?x)\\b(?:int)(?:(?!(?:[0-9A-Za-z_])))"
536
+ },
537
+ "int-literal": {
538
+ "name": "constant.numeric.decimal.ql",
539
+ "match": "(?x)-?[0-9]+(?![0-9])"
540
+ },
541
+ "keyword": {
542
+ "patterns": [
543
+ {
544
+ "include": "#dont-care"
545
+ },
546
+ {
547
+ "include": "#and"
548
+ },
549
+ {
550
+ "include": "#any"
551
+ },
552
+ {
553
+ "include": "#as"
554
+ },
555
+ {
556
+ "include": "#asc"
557
+ },
558
+ {
559
+ "include": "#avg"
560
+ },
561
+ {
562
+ "include": "#boolean"
563
+ },
564
+ {
565
+ "include": "#by"
566
+ },
567
+ {
568
+ "include": "#class"
569
+ },
570
+ {
571
+ "include": "#concat"
572
+ },
573
+ {
574
+ "include": "#count"
575
+ },
576
+ {
577
+ "include": "#date"
578
+ },
579
+ {
580
+ "include": "#desc"
581
+ },
582
+ {
583
+ "include": "#else"
584
+ },
585
+ {
586
+ "include": "#exists"
587
+ },
588
+ {
589
+ "include": "#extends"
590
+ },
591
+ {
592
+ "include": "#false"
593
+ },
594
+ {
595
+ "include": "#float"
596
+ },
597
+ {
598
+ "include": "#forall"
599
+ },
600
+ {
601
+ "include": "#forex"
602
+ },
603
+ {
604
+ "include": "#from"
605
+ },
606
+ {
607
+ "include": "#if"
608
+ },
609
+ {
610
+ "include": "#implies"
611
+ },
612
+ {
613
+ "include": "#import"
614
+ },
615
+ {
616
+ "include": "#in"
617
+ },
618
+ {
619
+ "include": "#instanceof"
620
+ },
621
+ {
622
+ "include": "#int"
623
+ },
624
+ {
625
+ "include": "#max"
626
+ },
627
+ {
628
+ "include": "#min"
629
+ },
630
+ {
631
+ "include": "#module"
632
+ },
633
+ {
634
+ "include": "#newtype"
635
+ },
636
+ {
637
+ "include": "#none"
638
+ },
639
+ {
640
+ "include": "#not"
641
+ },
642
+ {
643
+ "include": "#or"
644
+ },
645
+ {
646
+ "include": "#order"
647
+ },
648
+ {
649
+ "include": "#predicate"
650
+ },
651
+ {
652
+ "include": "#rank"
653
+ },
654
+ {
655
+ "include": "#result"
656
+ },
657
+ {
658
+ "include": "#select"
659
+ },
660
+ {
661
+ "include": "#strictconcat"
662
+ },
663
+ {
664
+ "include": "#strictcount"
665
+ },
666
+ {
667
+ "include": "#strictsum"
668
+ },
669
+ {
670
+ "include": "#string"
671
+ },
672
+ {
673
+ "include": "#sum"
674
+ },
675
+ {
676
+ "include": "#super"
677
+ },
678
+ {
679
+ "include": "#then"
680
+ },
681
+ {
682
+ "include": "#this"
683
+ },
684
+ {
685
+ "include": "#true"
686
+ },
687
+ {
688
+ "include": "#where"
689
+ }
690
+ ]
691
+ },
692
+ "language": {
693
+ "name": "storage.modifier.language.ql",
694
+ "match": "(?x)\\b(?:language)(?:(?!(?:[0-9A-Za-z_])))"
695
+ },
696
+ "language-annotation": {
697
+ "name": "meta.block.language-annotation.ql",
698
+ "begin": "(?x)((?:\\b(?:language)(?:(?!(?:[0-9A-Za-z_])))))",
699
+ "end": "(?x)(?! \\s | (?:// | /\\*) | \\[ ) | (?\u003c=\\])",
700
+ "patterns": [
701
+ {
702
+ "include": "#language-annotation-body"
703
+ },
704
+ {
705
+ "include": "#non-context-sensitive"
706
+ }
707
+ ],
708
+ "beginCaptures": {
709
+ "1": {
710
+ "patterns": [
711
+ {
712
+ "include": "#language"
713
+ }
714
+ ]
715
+ }
716
+ }
717
+ },
718
+ "language-annotation-body": {
719
+ "name": "meta.block.language-annotation-body.ql",
720
+ "begin": "(?x)((?:\\[))",
721
+ "end": "(?x)((?:\\]))",
722
+ "patterns": [
723
+ {
724
+ "include": "#non-context-sensitive"
725
+ },
726
+ {
727
+ "name": "storage.modifier.ql",
728
+ "match": "(?x)\\b(?:monotonicAggregates)(?:(?!(?:[0-9A-Za-z_])))"
729
+ }
730
+ ],
731
+ "beginCaptures": {
732
+ "1": {
733
+ "patterns": [
734
+ {
735
+ "include": "#open-bracket"
736
+ }
737
+ ]
738
+ }
739
+ },
740
+ "endCaptures": {
741
+ "1": {
742
+ "patterns": [
743
+ {
744
+ "include": "#close-bracket"
745
+ }
746
+ ]
747
+ }
748
+ }
749
+ },
750
+ "library": {
751
+ "name": "storage.modifier.library.ql",
752
+ "match": "(?x)\\b(?:library)(?:(?!(?:[0-9A-Za-z_])))"
753
+ },
754
+ "literal": {
755
+ "patterns": [
756
+ {
757
+ "include": "#float-literal"
758
+ },
759
+ {
760
+ "include": "#int-literal"
761
+ },
762
+ {
763
+ "include": "#string-literal"
764
+ }
765
+ ]
766
+ },
767
+ "lower-id": {
768
+ "match": "(?x)\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))"
769
+ },
770
+ "max": {
771
+ "name": "keyword.aggregate.max.ql",
772
+ "match": "(?x)\\b(?:max)(?:(?!(?:[0-9A-Za-z_])))"
773
+ },
774
+ "min": {
775
+ "name": "keyword.aggregate.min.ql",
776
+ "match": "(?x)\\b(?:min)(?:(?!(?:[0-9A-Za-z_])))"
777
+ },
778
+ "module": {
779
+ "name": "keyword.other.module.ql",
780
+ "match": "(?x)\\b(?:module)(?:(?!(?:[0-9A-Za-z_])))"
781
+ },
782
+ "module-body": {
783
+ "name": "meta.block.module-body.ql",
784
+ "begin": "(?x)((?:\\{))",
785
+ "end": "(?x)((?:\\}))",
786
+ "patterns": [
787
+ {
788
+ "include": "#module-member"
789
+ }
790
+ ],
791
+ "beginCaptures": {
792
+ "1": {
793
+ "patterns": [
794
+ {
795
+ "include": "#open-brace"
796
+ }
797
+ ]
798
+ }
799
+ },
800
+ "endCaptures": {
801
+ "1": {
802
+ "patterns": [
803
+ {
804
+ "include": "#close-brace"
805
+ }
806
+ ]
807
+ }
808
+ }
809
+ },
810
+ "module-declaration": {
811
+ "name": "meta.block.module-declaration.ql",
812
+ "begin": "(?x)((?:\\b(?:module)(?:(?!(?:[0-9A-Za-z_])))))",
813
+ "end": "(?x)(?\u003c=\\}|;)",
814
+ "patterns": [
815
+ {
816
+ "include": "#module-body"
817
+ },
818
+ {
819
+ "include": "#non-context-sensitive"
820
+ },
821
+ {
822
+ "name": "entity.name.type.namespace.ql",
823
+ "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
824
+ }
825
+ ],
826
+ "beginCaptures": {
827
+ "1": {
828
+ "patterns": [
829
+ {
830
+ "include": "#module"
831
+ }
832
+ ]
833
+ }
834
+ }
835
+ },
836
+ "module-member": {
837
+ "patterns": [
838
+ {
839
+ "include": "#import-directive"
840
+ },
841
+ {
842
+ "include": "#import-as-clause"
843
+ },
844
+ {
845
+ "include": "#module-declaration"
846
+ },
847
+ {
848
+ "include": "#class-declaration"
849
+ },
850
+ {
851
+ "include": "#select-clause"
852
+ },
853
+ {
854
+ "include": "#predicate-or-field-declaration"
855
+ },
856
+ {
857
+ "include": "#non-context-sensitive"
858
+ },
859
+ {
860
+ "include": "#annotation"
861
+ }
862
+ ]
863
+ },
864
+ "module-qualifier": {
865
+ "name": "entity.name.type.namespace.ql",
866
+ "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))) (?=\\s*\\:\\:)"
867
+ },
868
+ "newtype": {
869
+ "name": "keyword.other.newtype.ql",
870
+ "match": "(?x)\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_])))"
871
+ },
872
+ "newtype-branch": {
873
+ "name": "meta.block.newtype-branch.ql",
874
+ "begin": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))",
875
+ "end": "(?x)(?\u003c=\\}) | (?! \\s | (?:// | /\\*) | \\{ )",
876
+ "patterns": [
877
+ {
878
+ "include": "#predicate-body"
879
+ },
880
+ {
881
+ "include": "#non-context-sensitive"
882
+ },
883
+ {
884
+ "name": "entity.name.type.ql",
885
+ "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
886
+ }
887
+ ],
888
+ "beginCaptures": {
889
+ "0": {
890
+ "name": "entity.name.type.ql"
891
+ }
892
+ }
893
+ },
894
+ "newtype-declaration": {
895
+ "name": "meta.block.newtype.ql",
896
+ "begin": "(?x)((?:\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_])))))",
897
+ "end": "(?x)(?! \\s | (?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))) | (?:// | /\\*) | \\= | \\( )",
898
+ "patterns": [
899
+ {
900
+ "include": "#non-context-sensitive"
901
+ },
902
+ {
903
+ "include": "#newtype-branch"
904
+ }
905
+ ],
906
+ "beginCaptures": {
907
+ "1": {
908
+ "patterns": [
909
+ {
910
+ "include": "#newtype"
911
+ }
912
+ ]
913
+ }
914
+ }
915
+ },
916
+ "non-context-sensitive": {
917
+ "patterns": [
918
+ {
919
+ "include": "#comment"
920
+ },
921
+ {
922
+ "include": "#literal"
923
+ },
924
+ {
925
+ "include": "#operator-or-punctuation"
926
+ },
927
+ {
928
+ "include": "#keyword"
929
+ }
930
+ ]
931
+ },
932
+ "none": {
933
+ "name": "keyword.quantifier.none.ql",
934
+ "match": "(?x)\\b(?:none)(?:(?!(?:[0-9A-Za-z_])))"
935
+ },
936
+ "not": {
937
+ "name": "keyword.other.not.ql",
938
+ "match": "(?x)\\b(?:not)(?:(?!(?:[0-9A-Za-z_])))"
939
+ },
940
+ "open-brace": {
941
+ "name": "punctuation.curlybrace.open.ql",
942
+ "match": "(?x)\\{"
943
+ },
944
+ "open-bracket": {
945
+ "name": "punctuation.squarebracket.open.ql",
946
+ "match": "(?x)\\["
947
+ },
948
+ "open-paren": {
949
+ "name": "punctuation.parenthesis.open.ql",
950
+ "match": "(?x)\\("
951
+ },
952
+ "operator-or-punctuation": {
953
+ "patterns": [
954
+ {
955
+ "include": "#relational-operator"
956
+ },
957
+ {
958
+ "include": "#comparison-operator"
959
+ },
960
+ {
961
+ "include": "#arithmetic-operator"
962
+ },
963
+ {
964
+ "include": "#comma"
965
+ },
966
+ {
967
+ "include": "#semicolon"
968
+ },
969
+ {
970
+ "include": "#dot"
971
+ },
972
+ {
973
+ "include": "#dotdot"
974
+ },
975
+ {
976
+ "include": "#pipe"
977
+ },
978
+ {
979
+ "include": "#open-paren"
980
+ },
981
+ {
982
+ "include": "#close-paren"
983
+ },
984
+ {
985
+ "include": "#open-brace"
986
+ },
987
+ {
988
+ "include": "#close-brace"
989
+ },
990
+ {
991
+ "include": "#open-bracket"
992
+ },
993
+ {
994
+ "include": "#close-bracket"
995
+ }
996
+ ]
997
+ },
998
+ "or": {
999
+ "name": "keyword.other.or.ql",
1000
+ "match": "(?x)\\b(?:or)(?:(?!(?:[0-9A-Za-z_])))"
1001
+ },
1002
+ "order": {
1003
+ "name": "keyword.order.order.ql",
1004
+ "match": "(?x)\\b(?:order)(?:(?!(?:[0-9A-Za-z_])))"
1005
+ },
1006
+ "override": {
1007
+ "name": "storage.modifier.override.ql",
1008
+ "match": "(?x)\\b(?:override)(?:(?!(?:[0-9A-Za-z_])))"
1009
+ },
1010
+ "pipe": {
1011
+ "name": "punctuation.separator.pipe.ql",
1012
+ "match": "(?x)\\|"
1013
+ },
1014
+ "pragma": {
1015
+ "name": "storage.modifier.pragma.ql",
1016
+ "match": "(?x)\\b(?:pragma)(?:(?!(?:[0-9A-Za-z_])))"
1017
+ },
1018
+ "pragma-annotation": {
1019
+ "name": "meta.block.pragma-annotation.ql",
1020
+ "begin": "(?x)((?:\\b(?:pragma)(?:(?!(?:[0-9A-Za-z_])))))",
1021
+ "end": "(?x)(?! \\s | (?:// | /\\*) | \\[ ) | (?\u003c=\\])",
1022
+ "patterns": [
1023
+ {
1024
+ "include": "#pragma-annotation-body"
1025
+ },
1026
+ {
1027
+ "include": "#non-context-sensitive"
1028
+ }
1029
+ ],
1030
+ "beginCaptures": {
1031
+ "1": {
1032
+ "patterns": [
1033
+ {
1034
+ "include": "#pragma"
1035
+ }
1036
+ ]
1037
+ }
1038
+ }
1039
+ },
1040
+ "pragma-annotation-body": {
1041
+ "name": "meta.block.pragma-annotation-body.ql",
1042
+ "begin": "(?x)((?:\\[))",
1043
+ "end": "(?x)((?:\\]))",
1044
+ "patterns": [
1045
+ {
1046
+ "name": "storage.modifier.ql",
1047
+ "match": "(?x)\\b(?:inline|noinline|nomagic|noopt)\\b"
1048
+ }
1049
+ ],
1050
+ "beginCaptures": {
1051
+ "1": {
1052
+ "patterns": [
1053
+ {
1054
+ "include": "#open-bracket"
1055
+ }
1056
+ ]
1057
+ }
1058
+ },
1059
+ "endCaptures": {
1060
+ "1": {
1061
+ "patterns": [
1062
+ {
1063
+ "include": "#close-bracket"
1064
+ }
1065
+ ]
1066
+ }
1067
+ }
1068
+ },
1069
+ "predicate": {
1070
+ "name": "keyword.other.predicate.ql",
1071
+ "match": "(?x)\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_])))"
1072
+ },
1073
+ "predicate-body": {
1074
+ "name": "meta.block.predicate-body.ql",
1075
+ "begin": "(?x)((?:\\{))",
1076
+ "end": "(?x)((?:\\}))",
1077
+ "patterns": [
1078
+ {
1079
+ "include": "#predicate-body-contents"
1080
+ }
1081
+ ],
1082
+ "beginCaptures": {
1083
+ "1": {
1084
+ "patterns": [
1085
+ {
1086
+ "include": "#open-brace"
1087
+ }
1088
+ ]
1089
+ }
1090
+ },
1091
+ "endCaptures": {
1092
+ "1": {
1093
+ "patterns": [
1094
+ {
1095
+ "include": "#close-brace"
1096
+ }
1097
+ ]
1098
+ }
1099
+ }
1100
+ },
1101
+ "predicate-body-contents": {
1102
+ "patterns": [
1103
+ {
1104
+ "include": "#expr-as-clause"
1105
+ },
1106
+ {
1107
+ "include": "#non-context-sensitive"
1108
+ },
1109
+ {
1110
+ "include": "#module-qualifier"
1111
+ },
1112
+ {
1113
+ "name": "entity.name.function.ql",
1114
+ "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))\\s*(?:\\*|\\+)?\\s*(?=\\()"
1115
+ },
1116
+ {
1117
+ "name": "variable.other.ql",
1118
+ "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
1119
+ },
1120
+ {
1121
+ "name": "entity.name.type.ql",
1122
+ "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
1123
+ }
1124
+ ]
1125
+ },
1126
+ "predicate-or-field-declaration": {
1127
+ "name": "meta.block.predicate-or-field-declaration.ql",
1128
+ "begin": "(?x)(?:(?=(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))))(?!(?:(?:(?:\\b(?:_)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:and)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:any)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:asc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:avg)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:by)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:class)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:concat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:count)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:desc)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:else)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:exists)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:extends)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:false)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forall)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:forex)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:if)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:implies)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:import)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:in)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:instanceof)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:max)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:min)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:module)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:newtype)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:none)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:not)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:or)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:order)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:rank)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:result)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:sum)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:super)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:then)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:this)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:true)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))))|(?:(?:(?:\\b(?:abstract)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:bindingset)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:cached)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:deprecated)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:external)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:final)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:language)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:library)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:override)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:pragma)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:private)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:query)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:transient)(?:(?!(?:[0-9A-Za-z_])))))))) | (?=(?:(?:(?:\\b(?:boolean)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:date)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:float)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:int)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:predicate)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:string)(?:(?!(?:[0-9A-Za-z_]))))))) | (?=(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))))",
1129
+ "end": "(?x)(?\u003c=\\}|;)",
1130
+ "patterns": [
1131
+ {
1132
+ "include": "#predicate-parameter-list"
1133
+ },
1134
+ {
1135
+ "include": "#predicate-body"
1136
+ },
1137
+ {
1138
+ "include": "#non-context-sensitive"
1139
+ },
1140
+ {
1141
+ "include": "#module-qualifier"
1142
+ },
1143
+ {
1144
+ "name": "variable.field.ql",
1145
+ "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))(?=\\s*;)"
1146
+ },
1147
+ {
1148
+ "name": "entity.name.function.ql",
1149
+ "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
1150
+ },
1151
+ {
1152
+ "name": "entity.name.type.ql",
1153
+ "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
1154
+ }
1155
+ ]
1156
+ },
1157
+ "predicate-parameter-list": {
1158
+ "name": "meta.block.predicate-parameter-list.ql",
1159
+ "begin": "(?x)((?:\\())",
1160
+ "end": "(?x)((?:\\)))",
1161
+ "patterns": [
1162
+ {
1163
+ "include": "#non-context-sensitive"
1164
+ },
1165
+ {
1166
+ "name": "variable.parameter.ql",
1167
+ "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))(?=\\s*(?:,|\\)))"
1168
+ },
1169
+ {
1170
+ "include": "#module-qualifier"
1171
+ },
1172
+ {
1173
+ "name": "entity.name.type.ql",
1174
+ "match": "(?x)(?:\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))|(?:@[a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
1175
+ },
1176
+ {
1177
+ "name": "variable.parameter.ql",
1178
+ "match": "(?x)(?:\\b [a-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
1179
+ }
1180
+ ],
1181
+ "beginCaptures": {
1182
+ "1": {
1183
+ "patterns": [
1184
+ {
1185
+ "include": "#open-paren"
1186
+ }
1187
+ ]
1188
+ }
1189
+ },
1190
+ "endCaptures": {
1191
+ "1": {
1192
+ "patterns": [
1193
+ {
1194
+ "include": "#close-paren"
1195
+ }
1196
+ ]
1197
+ }
1198
+ }
1199
+ },
1200
+ "predicate-start-keyword": {
1201
+ "patterns": [
1202
+ {
1203
+ "include": "#boolean"
1204
+ },
1205
+ {
1206
+ "include": "#date"
1207
+ },
1208
+ {
1209
+ "include": "#float"
1210
+ },
1211
+ {
1212
+ "include": "#int"
1213
+ },
1214
+ {
1215
+ "include": "#predicate"
1216
+ },
1217
+ {
1218
+ "include": "#string"
1219
+ }
1220
+ ]
1221
+ },
1222
+ "private": {
1223
+ "name": "storage.modifier.private.ql",
1224
+ "match": "(?x)\\b(?:private)(?:(?!(?:[0-9A-Za-z_])))"
1225
+ },
1226
+ "query": {
1227
+ "name": "storage.modifier.query.ql",
1228
+ "match": "(?x)\\b(?:query)(?:(?!(?:[0-9A-Za-z_])))"
1229
+ },
1230
+ "rank": {
1231
+ "name": "keyword.aggregate.rank.ql",
1232
+ "match": "(?x)\\b(?:rank)(?:(?!(?:[0-9A-Za-z_])))"
1233
+ },
1234
+ "relational-operator": {
1235
+ "name": "keyword.operator.relational.ql",
1236
+ "match": "(?x)\u003c=|\u003c|\u003e=|\u003e"
1237
+ },
1238
+ "result": {
1239
+ "name": "variable.language.result.ql",
1240
+ "match": "(?x)\\b(?:result)(?:(?!(?:[0-9A-Za-z_])))"
1241
+ },
1242
+ "select": {
1243
+ "name": "keyword.query.select.ql",
1244
+ "match": "(?x)\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))"
1245
+ },
1246
+ "select-as-clause": {
1247
+ "match": "(?x)meta.block.select-as-clause.ql",
1248
+ "begin": "(?x)((?:\\b(?:as)(?:(?!(?:[0-9A-Za-z_])))))",
1249
+ "end": "(?x)(?\u003c=(?:[0-9A-Za-z_])(?:(?!(?:[0-9A-Za-z_]))))",
1250
+ "patterns": [
1251
+ {
1252
+ "include": "#non-context-sensitive"
1253
+ },
1254
+ {
1255
+ "name": "variable.other.ql",
1256
+ "match": "(?x)(?:\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_]))))"
1257
+ }
1258
+ ],
1259
+ "beginCaptures": {
1260
+ "1": {
1261
+ "patterns": [
1262
+ {
1263
+ "include": "#as"
1264
+ }
1265
+ ]
1266
+ }
1267
+ }
1268
+ },
1269
+ "select-clause": {
1270
+ "name": "meta.block.select-clause.ql",
1271
+ "begin": "(?x)(?=(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))",
1272
+ "end": "(?x)(?!(?:\\b(?:from)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_]))))|(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))",
1273
+ "patterns": [
1274
+ {
1275
+ "include": "#from-section"
1276
+ },
1277
+ {
1278
+ "include": "#where-section"
1279
+ },
1280
+ {
1281
+ "include": "#select-section"
1282
+ }
1283
+ ]
1284
+ },
1285
+ "select-section": {
1286
+ "name": "meta.block.select-section.ql",
1287
+ "begin": "(?x)((?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))",
1288
+ "end": "(?x)(?=\\n)",
1289
+ "patterns": [
1290
+ {
1291
+ "include": "#predicate-body-contents"
1292
+ },
1293
+ {
1294
+ "include": "#select-as-clause"
1295
+ }
1296
+ ],
1297
+ "beginCaptures": {
1298
+ "1": {
1299
+ "patterns": [
1300
+ {
1301
+ "include": "#select"
1302
+ }
1303
+ ]
1304
+ }
1305
+ }
1306
+ },
1307
+ "semicolon": {
1308
+ "name": "punctuation.separator.statement.ql",
1309
+ "match": "(?x);"
1310
+ },
1311
+ "simple-id": {
1312
+ "match": "(?x)\\b [A-Za-z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))"
1313
+ },
1314
+ "strictconcat": {
1315
+ "name": "keyword.aggregate.strictconcat.ql",
1316
+ "match": "(?x)\\b(?:strictconcat)(?:(?!(?:[0-9A-Za-z_])))"
1317
+ },
1318
+ "strictcount": {
1319
+ "name": "keyword.aggregate.strictcount.ql",
1320
+ "match": "(?x)\\b(?:strictcount)(?:(?!(?:[0-9A-Za-z_])))"
1321
+ },
1322
+ "strictsum": {
1323
+ "name": "keyword.aggregate.strictsum.ql",
1324
+ "match": "(?x)\\b(?:strictsum)(?:(?!(?:[0-9A-Za-z_])))"
1325
+ },
1326
+ "string": {
1327
+ "name": "keyword.type.string.ql",
1328
+ "match": "(?x)\\b(?:string)(?:(?!(?:[0-9A-Za-z_])))"
1329
+ },
1330
+ "string-escape": {
1331
+ "name": "constant.character.escape.ql",
1332
+ "match": "(?x)\\\\[\"\\\\nrt]"
1333
+ },
1334
+ "string-literal": {
1335
+ "name": "string.quoted.double.ql",
1336
+ "begin": "(?x)\"",
1337
+ "end": "(?x)(\") | ((?:[^\\\\\\n])$)",
1338
+ "patterns": [
1339
+ {
1340
+ "include": "#string-escape"
1341
+ }
1342
+ ],
1343
+ "beginCaptures": {
1344
+ "0": {
1345
+ "name": "punctuation.definition.string.begin.ql"
1346
+ }
1347
+ },
1348
+ "endCaptures": {
1349
+ "1": {
1350
+ "name": "punctuation.definition.string.end.ql"
1351
+ },
1352
+ "2": {
1353
+ "name": "invalid.illegal.newline.ql"
1354
+ }
1355
+ }
1356
+ },
1357
+ "sum": {
1358
+ "name": "keyword.aggregate.sum.ql",
1359
+ "match": "(?x)\\b(?:sum)(?:(?!(?:[0-9A-Za-z_])))"
1360
+ },
1361
+ "super": {
1362
+ "name": "variable.language.super.ql",
1363
+ "match": "(?x)\\b(?:super)(?:(?!(?:[0-9A-Za-z_])))"
1364
+ },
1365
+ "then": {
1366
+ "name": "keyword.other.then.ql",
1367
+ "match": "(?x)\\b(?:then)(?:(?!(?:[0-9A-Za-z_])))"
1368
+ },
1369
+ "this": {
1370
+ "name": "variable.language.this.ql",
1371
+ "match": "(?x)\\b(?:this)(?:(?!(?:[0-9A-Za-z_])))"
1372
+ },
1373
+ "transient": {
1374
+ "name": "storage.modifier.transient.ql",
1375
+ "match": "(?x)\\b(?:transient)(?:(?!(?:[0-9A-Za-z_])))"
1376
+ },
1377
+ "true": {
1378
+ "name": "constant.language.boolean.true.ql",
1379
+ "match": "(?x)\\b(?:true)(?:(?!(?:[0-9A-Za-z_])))"
1380
+ },
1381
+ "upper-id": {
1382
+ "match": "(?x)\\b [A-Z][0-9A-Za-z_]* (?:(?!(?:[0-9A-Za-z_])))"
1383
+ },
1384
+ "where": {
1385
+ "name": "keyword.query.where.ql",
1386
+ "match": "(?x)\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))"
1387
+ },
1388
+ "where-section": {
1389
+ "name": "meta.block.where-section.ql",
1390
+ "begin": "(?x)((?:\\b(?:where)(?:(?!(?:[0-9A-Za-z_])))))",
1391
+ "end": "(?x)(?=(?:\\b(?:select)(?:(?!(?:[0-9A-Za-z_])))))",
1392
+ "patterns": [
1393
+ {
1394
+ "include": "#predicate-body-contents"
1395
+ }
1396
+ ],
1397
+ "beginCaptures": {
1398
+ "1": {
1399
+ "patterns": [
1400
+ {
1401
+ "include": "#where"
1402
+ }
1403
+ ]
1404
+ }
1405
+ }
1406
+ }
1407
+ }
1408
+ }