github-linguist 7.6.1 → 7.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. checksums.yaml +5 -5
  2. data/bin/github-linguist +17 -4
  3. data/grammars/annotation.liquidhaskell.haskell.json +11 -11
  4. data/grammars/etc.json +212 -3
  5. data/grammars/hidden.manref.json +29 -0
  6. data/grammars/hint.haskell.json +11 -11
  7. data/grammars/hint.message.haskell.json +11 -11
  8. data/grammars/hint.type.haskell.json +11 -11
  9. data/grammars/injections.etc.json +601 -1
  10. data/grammars/source.abap.json +7 -7
  11. data/grammars/source.abnf.json +23 -1
  12. data/grammars/source.ahk.json +3 -3
  13. data/grammars/source.angelscript.json +1 -1
  14. data/grammars/source.ballerina.json +54 -18
  15. data/grammars/source.csound.json +1 -1
  16. data/grammars/source.css.json +2 -2
  17. data/grammars/source.css.scss.json +164 -15
  18. data/grammars/source.curlrc.json +869 -65
  19. data/grammars/source.dart.json +1 -1
  20. data/grammars/source.dircolors.json +39 -0
  21. data/grammars/source.direct-x.json +135 -0
  22. data/grammars/source.ebnf.json +67 -39
  23. data/grammars/source.elixir.json +43 -0
  24. data/grammars/source.gfm.json +1 -1
  25. data/grammars/source.gitconfig.json +1 -1
  26. data/grammars/source.hack.json +196 -80
  27. data/grammars/source.haskell.json +11 -11
  28. data/grammars/source.hosts.json +40 -0
  29. data/grammars/source.hsig.json +11 -11
  30. data/grammars/source.igor.json +2 -2
  31. data/grammars/source.ini.npmrc.json +311 -0
  32. data/grammars/source.inno.json +133 -0
  33. data/grammars/source.inputrc.json +500 -0
  34. data/grammars/source.js.json +4 -4
  35. data/grammars/source.julia.json +45 -3
  36. data/grammars/source.kotlin.json +1 -1
  37. data/grammars/source.lex.json +4 -4
  38. data/grammars/source.m4.json +141 -99
  39. data/grammars/source.man-conf.json +46 -34
  40. data/grammars/source.matlab.json +225 -35
  41. data/grammars/source.mcfunction-snapshot.json +21388 -561
  42. data/grammars/source.mcfunction.json +55 -5
  43. data/grammars/source.mlir.json +37 -317
  44. data/grammars/source.mrc.json +858 -0
  45. data/grammars/source.opts.json +12 -2
  46. data/grammars/source.p4.json +21 -5
  47. data/grammars/source.prisma.json +428 -0
  48. data/grammars/source.python.json +2 -0
  49. data/grammars/source.reason.json +28 -16
  50. data/grammars/source.rego.json +124 -0
  51. data/grammars/source.sass.json +158 -3
  52. data/grammars/source.scala.json +26 -15
  53. data/grammars/source.ssh-config.json +1 -14
  54. data/grammars/source.swift.json +162 -2
  55. data/grammars/source.ts.json +74 -25
  56. data/grammars/source.tsx.json +75 -26
  57. data/grammars/source.v.json +58 -16
  58. data/grammars/source.vim-snippet.json +645 -0
  59. data/grammars/source.viml.json +5 -5
  60. data/grammars/source.wgetrc.json +1640 -0
  61. data/grammars/source.zig.json +169 -304
  62. data/grammars/text.html.php.blade.json +1 -1
  63. data/grammars/text.html.riot.json +788 -0
  64. data/grammars/text.muse.json +1471 -0
  65. data/grammars/text.tex.latex.haskell.json +11 -11
  66. data/grammars/text.vim-help.json +383 -0
  67. data/grammars/version +1 -1
  68. data/lib/linguist/VERSION +1 -1
  69. data/lib/linguist/blob_helper.rb +4 -2
  70. data/lib/linguist/generated.rb +39 -12
  71. data/lib/linguist/heuristics.yml +16 -1
  72. data/lib/linguist/languages.json +1 -1
  73. data/lib/linguist/languages.yml +183 -14
  74. data/lib/linguist/linguist.bundle +0 -0
  75. data/lib/linguist/samples.json +6910 -536
  76. data/lib/linguist/vendor.yml +6 -0
  77. metadata +18 -5
  78. data/grammars/source.jlex.json +0 -322
@@ -0,0 +1,858 @@
1
+ {
2
+ "name": "mIRC",
3
+ "scopeName": "source.mrc",
4
+ "patterns": [
5
+ {
6
+ "include": "#comments"
7
+ },
8
+ {
9
+ "include": "#function-definitions"
10
+ },
11
+ {
12
+ "include": "#variable-assignments"
13
+ },
14
+ {
15
+ "include": "#statements"
16
+ },
17
+ {
18
+ "include": "#labels"
19
+ },
20
+ {
21
+ "include": "#keywords"
22
+ },
23
+ {
24
+ "include": "#commands"
25
+ },
26
+ {
27
+ "include": "#identifiers"
28
+ },
29
+ {
30
+ "include": "#variables"
31
+ },
32
+ {
33
+ "include": "#constants"
34
+ },
35
+ {
36
+ "include": "#punctuation"
37
+ }
38
+ ],
39
+ "repository": {
40
+ "arithmetic-operators": {
41
+ "patterns": [
42
+ {
43
+ "name": "keyword.operator.arithmetic.mrc",
44
+ "match": "[+\\-/*^%]"
45
+ }
46
+ ]
47
+ },
48
+ "commands": {
49
+ "patterns": [
50
+ {
51
+ "match": "(?:^|(?\u003c=[|{)]|else)\\s)\\s*((/*)(?:(!)(\\.)?|(\\.)(!)?)?!?(?i:abook|ajinvite|alias|aline|ame|amsg|anick|aop|auser|autojoin|away|avoice|background|ban|bcopy|beep|bindip|bread|breplace|bset|btrunc|bunset|bwrite|channel|clear(?:all)?|cline|clipboard|close|cnick|color|com(?:close|list|open|reg)|copy|creq|ctcreply|ctcps|dcc|ddcserver|dde|ddeserver|debug|dec|describe|dialog|did|didtok|disable|disconnect|dlevel|dline|dll|dns|dqwindow|draw(?:copy|dot|fill|line|pic|rect|replace|rot|save|size|scroll|text)|ebeeps|echo|editbox|emailaddr|enable|events|exit|fclose|filter|findtext|firewall|flash|flist|flood|flush|flushini|font|fopen|fseek|fsend|fserve|fullname|fwrite|ghide|gload|gmove|gopts|gplay|gpoint|gqreq|groups|gshow|gsize|gstop|gtalk|gunload|guser|hadd|hdec|hdel|help|hfree|hinc|hload|hmake|hop|hsave|ial(?:clear|mark)?|identd|ignore|iline|inc|invite|iuser|join|kick|linesep|links|list|load(?:buf)?|localinfo|log|logview|mdi|me|menubar|mkdir|mnick|mode|msg|nick|noop|notice|notify|omsg|onotice|part|partall|pdcc|perform|play|playctrl|pop|protect|proxy|pvoice|qme|qmsg|query|queryrn|quit|raw|reload|remini|remote|remove|rename|renwin|reseterror|resetidle|rlevel|rline|rmdir|run|ruser|save(?:buf|ini)?|say|scid|scon|server|showmirc|signal|sline|sock(?:accept|close|list|listen|mark|open|pause|read|rename|udp|write)|sound|speak|splay|sreq|strip|switchbar|timestamp|tip|tips|titlebar|tnick|tokenize|toolbar|topic|tray|treebar|ulist|unload|unset|unsetall|updatenl|url|uwho|vc(?:add|md|rem)|whois|window|winhelp|vol|write|writeini))(?=\\s)",
52
+ "captures": {
53
+ "1": {
54
+ "name": "support.function.command.default.mrc"
55
+ },
56
+ "2": {
57
+ "name": "punctuation.definition.command.mrc"
58
+ },
59
+ "3": {
60
+ "name": "meta.keyword.operator.command.default.mrc"
61
+ },
62
+ "4": {
63
+ "name": "meta.keyword.operator.command.silent.mrc"
64
+ },
65
+ "5": {
66
+ "name": "meta.keyword.operator.command.silent.mrc"
67
+ },
68
+ "6": {
69
+ "name": "meta.keyword.operator.command.default.mrc"
70
+ }
71
+ }
72
+ },
73
+ {
74
+ "match": "(?:^|(?\u003c=[|{)]|else)\\s)\\s*((/*)(?:(!)(\\.)?|(\\.)(!)?)?(?i:timer))(\\w+)?(?=\\s)",
75
+ "captures": {
76
+ "1": {
77
+ "name": "support.function.command.default.mrc"
78
+ },
79
+ "2": {
80
+ "name": "punctuation.definition.command.mrc"
81
+ },
82
+ "3": {
83
+ "name": "meta.keyword.operator.command.default.mrc"
84
+ },
85
+ "4": {
86
+ "name": "meta.keyword.operator.command.silent.mrc"
87
+ },
88
+ "5": {
89
+ "name": "meta.keyword.operator.command.silent.mrc"
90
+ },
91
+ "6": {
92
+ "name": "meta.keyword.operator.command.default.mrc"
93
+ }
94
+ }
95
+ },
96
+ {
97
+ "match": "(?:^|(?\u003c=[|{)]|else)\\s)\\s*((/+)(\\.)?\\w+)(?=\\s)",
98
+ "captures": {
99
+ "1": {
100
+ "name": "entity.name.function.command.custom.mrc"
101
+ },
102
+ "2": {
103
+ "name": "punctuation.definition.command.mrc"
104
+ },
105
+ "3": {
106
+ "name": "meta.keyword.operator.command.silent.mrc"
107
+ }
108
+ }
109
+ }
110
+ ]
111
+ },
112
+ "comments": {
113
+ "patterns": [
114
+ {
115
+ "name": "comment.block.mrc",
116
+ "begin": "(?:^|(?\u003c=\\s))(/\\*)",
117
+ "end": "(\\*/)",
118
+ "beginCaptures": {
119
+ "1": {
120
+ "name": "punctuation.definition.comment.slash-star.mrc"
121
+ }
122
+ },
123
+ "endCaptures": {
124
+ "1": {
125
+ "name": "punctuation.definition.comment.star-slash.mrc"
126
+ }
127
+ }
128
+ },
129
+ {
130
+ "name": "comment.line.mrc",
131
+ "match": "(?:^|(?\u003c=\\s));.*",
132
+ "captures": {
133
+ "1": {
134
+ "name": "punctuation.definition.comment.semicolon.mrc"
135
+ }
136
+ }
137
+ }
138
+ ]
139
+ },
140
+ "comparison-operators": {
141
+ "patterns": [
142
+ {
143
+ "name": "keyword.operator.comparison.mrc",
144
+ "match": "===?|[!\u003c\u003e]=|\u003c|\u003e|//|\\\\|is(?:in(?:cs)?|wm(?:cs)?|num|letter|alnum|alpha|lower|upper|on|op|hop|voice|reg|chan|ban|invite|except|aop|avoice|ignore|protect|notify)"
145
+ },
146
+ {
147
+ "name": "keyword.operator.logical.mrc",
148
+ "match": "!|\u0026\u0026?|\\|\\|"
149
+ }
150
+ ]
151
+ },
152
+ "constants": {
153
+ "patterns": [
154
+ {
155
+ "name": "constant.numeric.mrc",
156
+ "match": "(?:^|(?\u003c=\\W))(?:-)?\\d+(?:\\.\\d+)?\\b"
157
+ },
158
+ {
159
+ "name": "meta.constant.other.channel.mrc",
160
+ "match": "(?\u003c=[\\s\\[(,:=])#\\w*"
161
+ },
162
+ {
163
+ "name": "meta.constant.other.window.mrc",
164
+ "match": "(?\u003c=[\\s\\[(,:=])@\\w+"
165
+ }
166
+ ]
167
+ },
168
+ "function-definitions": {
169
+ "patterns": [
170
+ {
171
+ "match": "^(?i)^(alias)\\s+(?:-l\\s+)?(\\w+)\\s+(?={)",
172
+ "captures": {
173
+ "1": {
174
+ "name": "storage.type.alias.mrc"
175
+ },
176
+ "2": {
177
+ "name": "entity.name.function.mrc"
178
+ }
179
+ }
180
+ },
181
+ {
182
+ "begin": "(?i)^(dialog)\\s+(?:-l\\s+)?(\\w+)\\s+({)",
183
+ "end": "(})",
184
+ "patterns": [
185
+ {
186
+ "include": "#comments"
187
+ },
188
+ {
189
+ "match": "(?i)^\\s*(title|icon|size|option|text|edit|button|check|radio|box|scroll|list|combo|link|tab|menu|item)\\s+",
190
+ "captures": {
191
+ "1": {
192
+ "name": "entity.name.tag.mrc"
193
+ }
194
+ }
195
+ },
196
+ {
197
+ "include": "#strings"
198
+ },
199
+ {
200
+ "include": "#identifiers"
201
+ },
202
+ {
203
+ "include": "#variables"
204
+ },
205
+ {
206
+ "include": "#constants"
207
+ },
208
+ {
209
+ "name": "punctuation.separator.delimiter.mrc",
210
+ "match": ","
211
+ }
212
+ ],
213
+ "beginCaptures": {
214
+ "1": {
215
+ "name": "storage.type.dialog.mrc"
216
+ },
217
+ "2": {
218
+ "name": "entity.name.section.dialog.mrc"
219
+ },
220
+ "3": {
221
+ "name": "punctuation.bracket.curly.begin.mrc"
222
+ }
223
+ },
224
+ "endCaptures": {
225
+ "1": {
226
+ "name": "punctuation.bracket.curly.end.mrc"
227
+ }
228
+ }
229
+ },
230
+ {
231
+ "match": "(?i)^(menu)\\s+(channel|menubar|nicklist|query|status|@\\w+)(,(channel|menubar|nicklist|query|status|@\\w+))*\\s+(?={)",
232
+ "captures": {
233
+ "1": {
234
+ "name": "storage.type.menu.mrc"
235
+ }
236
+ }
237
+ },
238
+ {
239
+ "name": "entity.name.class.mrc",
240
+ "match": "(?i)^(raw)\\s+.+:.+:"
241
+ },
242
+ {
243
+ "name": "entity.name.class.mrc",
244
+ "match": "(?i)^(on)\\s+.+:(ACTION|ACTIVE|AGENT|APPACTIVE|BAN|CHAT|CLOSE|CONNECT(?:FAIL)?|CTCPREPLY|DCCSERVER|DE(HELP|OP|VOICE)|DIALOG|DISCONNECT|DNS|ERROR|EXIT|FILERCVD|FILESENT|GETFAIL|HELP|HOTLINK|INPUT|INVITE|JOIN|KEY(DOWN|UP)|KICK|LOAD|LOGON|MIDIEND|MODE|MP3END|NICK|NOSOUND|NOTICE|NOTIFY|OP|OPEN|PARSELINE|PART|PING|PLAYEND|PONG|QUIT|RAWMODE|SENDFAIL|SERV(?:ERMODE|EROP)?|SIGNAL|SNOTICE|SOCK(CLOSE|LISTEN|OPEN|READ|WRITE)|START|TABCOMP|TEXT|TOPIC|UDPREAD|UN(BAN|LOAD|NOTIFY)|USERMODE|WALLOPS|WAVEEND|VCMD|VOICE):(.+:)*"
245
+ }
246
+ ]
247
+ },
248
+ "identifiers": {
249
+ "patterns": [
250
+ {
251
+ "name": "constant.language.mrc",
252
+ "match": "(\\$~?)(!)?(?i:true|false|null|pi|crlf|cr|lf)\\b",
253
+ "captures": {
254
+ "1": {
255
+ "name": "meta.punctuation.definition.identifier.mrc"
256
+ },
257
+ "2": {
258
+ "name": "meta.keyword.operator.identifier.default.mrc"
259
+ }
260
+ }
261
+ },
262
+ {
263
+ "name": "keyword.operator.input-prompt.mrc",
264
+ "match": "(\\$)(\\$)?~?\\?(?:[*!]?(?==))?",
265
+ "captures": {
266
+ "1": {
267
+ "name": "meta.punctuation.definition.identifier.mrc"
268
+ },
269
+ "2": {
270
+ "name": "meta.punctuation.definition.identifier.mrc"
271
+ }
272
+ }
273
+ },
274
+ {
275
+ "name": "support.type.parameter.mrc",
276
+ "match": "(\\$)(\\$)?~?(?:\\d+(?:-\\d+|-)?|\\?\\d+)(?!\\w)",
277
+ "captures": {
278
+ "1": {
279
+ "name": "meta.punctuation.definition.identifier.mrc"
280
+ },
281
+ "2": {
282
+ "name": "meta.punctuation.definition.identifier.mrc"
283
+ }
284
+ }
285
+ },
286
+ {
287
+ "name": "support.type.prev-result.mrc",
288
+ "match": "(\\$~?)(?:!|!?(?i:ifmatch|v[12]))\\b",
289
+ "captures": {
290
+ "1": {
291
+ "name": "meta.punctuation.definition.identifier.mrc"
292
+ }
293
+ }
294
+ },
295
+ {
296
+ "begin": "((\\$~?)\\+?)(\\()",
297
+ "end": "(\\))",
298
+ "patterns": [
299
+ {
300
+ "include": "#identifiers-content"
301
+ },
302
+ {
303
+ "include": "#identifiers-recurse"
304
+ }
305
+ ],
306
+ "beginCaptures": {
307
+ "1": {
308
+ "name": "support.function.identifier.default.mrc"
309
+ },
310
+ "2": {
311
+ "name": "meta.punctuation.definition.identifier.mrc"
312
+ },
313
+ "3": {
314
+ "name": "punctuation.bracket.round.begin.mrc"
315
+ }
316
+ },
317
+ "endCaptures": {
318
+ "1": {
319
+ "name": "punctuation.bracket.round.end.mrc"
320
+ }
321
+ }
322
+ },
323
+ {
324
+ "name": "keyword.operator.string.mrc",
325
+ "match": "(\\$~?)[\u0026+]\\B",
326
+ "captures": {
327
+ "1": {
328
+ "name": "meta.punctuation.definition.identifier.mrc"
329
+ }
330
+ }
331
+ },
332
+ {
333
+ "begin": "((\\$~?)(!)?iif)(\\()",
334
+ "end": "(\\))((\\.)\\w+)?",
335
+ "patterns": [
336
+ {
337
+ "include": "#identifiers-iif-content"
338
+ },
339
+ {
340
+ "include": "#identifiers-iif-recurse"
341
+ }
342
+ ],
343
+ "beginCaptures": {
344
+ "1": {
345
+ "name": "support.function.identifier.default.mrc"
346
+ },
347
+ "2": {
348
+ "name": "meta.punctuation.definition.identifier.mrc"
349
+ },
350
+ "3": {
351
+ "name": "meta.keyword.operator.identifier.default.mrc"
352
+ },
353
+ "4": {
354
+ "name": "punctuation.bracket.round.begin.mrc"
355
+ }
356
+ },
357
+ "endCaptures": {
358
+ "1": {
359
+ "name": "punctuation.bracket.round.end.mrc"
360
+ },
361
+ "2": {
362
+ "name": "support.function.identifier.default.property.mrc"
363
+ },
364
+ "3": {
365
+ "name": "meta.punctuation.definition.identifier.property.mrc"
366
+ }
367
+ }
368
+ },
369
+ {
370
+ "begin": "((\\$~?)(!)?calc)(\\()",
371
+ "end": "(\\))((\\.)\\w+)?",
372
+ "patterns": [
373
+ {
374
+ "include": "#identifiers-calc-content"
375
+ },
376
+ {
377
+ "include": "#identifiers-calc-recurse"
378
+ }
379
+ ],
380
+ "beginCaptures": {
381
+ "1": {
382
+ "name": "support.function.identifier.default.mrc"
383
+ },
384
+ "2": {
385
+ "name": "meta.punctuation.definition.identifier.mrc"
386
+ },
387
+ "3": {
388
+ "name": "meta.keyword.operator.identifier.default.mrc"
389
+ },
390
+ "4": {
391
+ "name": "punctuation.bracket.round.begin.mrc"
392
+ }
393
+ },
394
+ "endCaptures": {
395
+ "1": {
396
+ "name": "punctuation.bracket.round.end.mrc"
397
+ },
398
+ "2": {
399
+ "name": "support.function.identifier.default.property.mrc"
400
+ },
401
+ "3": {
402
+ "name": "meta.punctuation.definition.identifier.property.mrc"
403
+ }
404
+ }
405
+ },
406
+ {
407
+ "begin": "((\\$~?)(!)?(?i:abook|abs|acos|address|addtok|agent|alias|and|ansi2mirc|aop|asc|asctime|asin|atan2?|avoice|base|bfind|bindip|bitoff|biton|bvar|bytes|cb|ceil|chan|chat|chr|click|cnick|color|com(?:call|chan|val)?|compress|cosh?|count|countcs|crc|ctime|dccignore|dde|decode|decompress|deltok|dialog|did(?:reg|tok|wm)?|disk|dll|dllcall|dns|duration|editbox|encode|eval|exists|fgetc|file|find(?:dir|file|tok)|fline|floor|fopen|fread|fserve|get(?:dot|tok)?|group|hash|height|hfind|hget|highlight|hypot|ial|ialchan|ibl|iel|ignore|iil|inellipse|ini|inpoly|input|inrect|inroundrect|instok|int|intersect|iptype|isalias|isbit|isdde|isdir|isfile|islower|istok|istokcs|isupper|left|len|level|line|lines|link|lock|log|log10|longfn|longip|lower|mask|matchtok|matchtokcs|md5|mid|mk(?:fn|logfn|nickfn)|mode|msfile|nick|nofile|nopath|noqt|not|notags|notify|numtok|onpoly|or|ord|pic|play|portfree|pos|poscs|protect|puttok|qt|query|rand|read|readini|reg(?:ex|ml|mlex|sub|subex)|remove|removecs|remtok|remtokcs|replacex?|replacex?cs|reptok|reptokcs|rgb|right|round|scid|scon|script|sdir|send|server|sfile|sha1|shortfn|sin|sline|snick|sock|sorttok|sorttokcs|sound|speak|sqrt|str|strip|style|submenu|tanh?|timer|tip|toolbar|trust|ulist|upper|uptime|var|vcmd|width|wildtok|wildtokcs|window|vol|wrap|xor))(\\()",
408
+ "end": "(\\))((\\.)\\w+)?",
409
+ "patterns": [
410
+ {
411
+ "include": "#identifiers-content"
412
+ },
413
+ {
414
+ "include": "#identifiers-recurse"
415
+ }
416
+ ],
417
+ "beginCaptures": {
418
+ "1": {
419
+ "name": "support.function.identifier.default.mrc"
420
+ },
421
+ "2": {
422
+ "name": "meta.punctuation.definition.identifier.mrc"
423
+ },
424
+ "3": {
425
+ "name": "meta.keyword.operator.identifier.default.mrc"
426
+ },
427
+ "4": {
428
+ "name": "punctuation.bracket.round.begin.mrc"
429
+ }
430
+ },
431
+ "endCaptures": {
432
+ "1": {
433
+ "name": "punctuation.bracket.round.end.mrc"
434
+ },
435
+ "2": {
436
+ "name": "support.function.identifier.default.property.mrc"
437
+ },
438
+ "3": {
439
+ "name": "meta.punctuation.definition.identifier.property.mrc"
440
+ }
441
+ }
442
+ },
443
+ {
444
+ "name": "support.type.identifier.default.noargs.mrc",
445
+ "match": "(\\$~?)(!)?(?i:active(?:cid|wid)?|address|agent(?:name|stat|ver)|anick|aop|appactive|appstate|away(?:msg|time)?|avoice|banmask|bnick|cb|cd|chan(?:modes|types)?|cid|clevel|cmdbox|cmdline|comerr|compact|creq|ctimer?|ctrlenter|date|day|daylight|dbuh|dbuw|dccignore|dccport|ddename|debug|devent|dlevel|dname|ebeeps|emailaddr|error|event|feof|ferr|filename|filtered|find(?:dirn|filen)|full(?:address|date|name|screen)|getdir|gmt|halted|highlight|hnick|host|hotline|hotlinepos|ial|idle|ignore|inmidi|inpaste|insong|inwave|ip|isid|key(?:char|rpt|val)|knick|lactive(?:cid|wid)?|leftwin(?:cid|wid)?|locked|log(?:dir|stamp|stampfmt)?|ltimer|maddress|matchkey|me|menu(?:bar|context|type)?|mididir|mirc(?:dir|exe|ini)|mnick|mode(?:first|last|spl)|mouse|network|newnick|nick|numeric|online|opnick|os|passivedcc|pi|pnick|port|portable|prefix|prop|protect|rawbytes|rawmsg|readn|remote|result|script(?:dir|line)?|server(?:ip|target)?|show|signal|site|snicks|snotify|sock(?:br|err|name)|sreq|ssl(?:dll|libdll|ready|version)?|status|stripped|switchbar|target|ticks|time|timestamp|timestampfmt|timezone|tips|titlebar|toolbar|treebar|ulevel|url|usermode|vcmd(?:stat|ver)|version|wid|wildsite|window|vnick)\\b",
446
+ "captures": {
447
+ "1": {
448
+ "name": "meta.punctuation.definition.identifier.mrc"
449
+ },
450
+ "2": {
451
+ "name": "meta.keyword.operator.identifier.default.mrc"
452
+ }
453
+ }
454
+ },
455
+ {
456
+ "begin": "((\\$)(!)?\\w+)(\\()",
457
+ "end": "(\\))((\\.)\\w+)?",
458
+ "patterns": [
459
+ {
460
+ "include": "#identifiers-content"
461
+ },
462
+ {
463
+ "include": "#identifiers-recurse"
464
+ }
465
+ ],
466
+ "beginCaptures": {
467
+ "1": {
468
+ "name": "entity.name.function.identifier.custom.mrc"
469
+ },
470
+ "2": {
471
+ "name": "meta.punctuation.definition.identifier.mrc"
472
+ },
473
+ "3": {
474
+ "name": "meta.keyword.operator.identifier.default.mrc"
475
+ },
476
+ "4": {
477
+ "name": "punctuation.bracket.round.begin.mrc"
478
+ }
479
+ },
480
+ "endCaptures": {
481
+ "1": {
482
+ "name": "punctuation.bracket.round.end.mrc"
483
+ },
484
+ "2": {
485
+ "name": "entity.name.function.identifier.custom.property.mrc"
486
+ },
487
+ "3": {
488
+ "name": "meta.punctuation.definition.identifier.property.mrc"
489
+ }
490
+ }
491
+ },
492
+ {
493
+ "name": "entity.name.function.identifier.custom.noargs.mrc",
494
+ "match": "(\\$)(!)?\\w+",
495
+ "captures": {
496
+ "1": {
497
+ "name": "meta.punctuation.definition.identifier.mrc"
498
+ },
499
+ "2": {
500
+ "name": "meta.keyword.operator.identifier.default.mrc"
501
+ }
502
+ }
503
+ }
504
+ ]
505
+ },
506
+ "identifiers-calc-content": {
507
+ "patterns": [
508
+ {
509
+ "include": "#identifiers-content"
510
+ },
511
+ {
512
+ "include": "#arithmetic-operators"
513
+ },
514
+ {
515
+ "include": "#identifiers-calc-recurse"
516
+ }
517
+ ]
518
+ },
519
+ "identifiers-calc-recurse": {
520
+ "patterns": [
521
+ {
522
+ "begin": "(\\()",
523
+ "end": "(\\))",
524
+ "patterns": [
525
+ {
526
+ "include": "#identifiers-calc-content"
527
+ },
528
+ {
529
+ "include": "#identifiers-calc-recurse"
530
+ }
531
+ ],
532
+ "beginCaptures": {
533
+ "1": {
534
+ "name": "punctuation.bracket.round.begin.mrc"
535
+ }
536
+ },
537
+ "endCaptures": {
538
+ "1": {
539
+ "name": "punctuation.bracket.round.end.mrc"
540
+ }
541
+ }
542
+ }
543
+ ]
544
+ },
545
+ "identifiers-content": {
546
+ "patterns": [
547
+ {
548
+ "include": "#identifiers"
549
+ },
550
+ {
551
+ "include": "#variables"
552
+ },
553
+ {
554
+ "include": "#constants"
555
+ },
556
+ {
557
+ "name": "punctuation.separator.delimiter.mrc",
558
+ "match": ","
559
+ }
560
+ ]
561
+ },
562
+ "identifiers-iif-content": {
563
+ "patterns": [
564
+ {
565
+ "include": "#comparison-operators"
566
+ },
567
+ {
568
+ "include": "#identifiers-content"
569
+ },
570
+ {
571
+ "include": "#identifiers-iif-recurse"
572
+ }
573
+ ]
574
+ },
575
+ "identifiers-iif-recurse": {
576
+ "patterns": [
577
+ {
578
+ "begin": "(\\()",
579
+ "end": "(\\))",
580
+ "patterns": [
581
+ {
582
+ "include": "#identifiers-iif-content"
583
+ },
584
+ {
585
+ "include": "#identifiers-iif-recurse"
586
+ }
587
+ ],
588
+ "beginCaptures": {
589
+ "1": {
590
+ "name": "punctuation.bracket.round.begin.mrc"
591
+ }
592
+ },
593
+ "endCaptures": {
594
+ "1": {
595
+ "name": "punctuation.bracket.round.end.mrc"
596
+ }
597
+ }
598
+ }
599
+ ]
600
+ },
601
+ "identifiers-recurse": {
602
+ "patterns": [
603
+ {
604
+ "begin": "(\\()",
605
+ "end": "(\\))",
606
+ "patterns": [
607
+ {
608
+ "include": "#identifiers-content"
609
+ },
610
+ {
611
+ "include": "#identifiers-recurse"
612
+ }
613
+ ],
614
+ "beginCaptures": {
615
+ "1": {
616
+ "name": "punctuation.bracket.round.begin.mrc"
617
+ }
618
+ },
619
+ "endCaptures": {
620
+ "1": {
621
+ "name": "punctuation.bracket.round.end.mrc"
622
+ }
623
+ }
624
+ }
625
+ ]
626
+ },
627
+ "keywords": {
628
+ "patterns": [
629
+ {
630
+ "match": "(?:^|(?\u003c=[|{)]|else)\\s)\\s*(/*!?(?i:break|continue|goto|halt(?:def)?|return))\\b",
631
+ "captures": {
632
+ "1": {
633
+ "name": "keyword.control.flow.mrc"
634
+ }
635
+ }
636
+ }
637
+ ]
638
+ },
639
+ "labels": {
640
+ "patterns": [
641
+ {
642
+ "name": "entity.name.section.label.mrc",
643
+ "match": "(?:^|(?\u003c=[|{)]|else)\\s)\\s*:\\w+"
644
+ }
645
+ ]
646
+ },
647
+ "punctuation": {
648
+ "patterns": [
649
+ {
650
+ "name": "punctuation.separator.command.mrc",
651
+ "match": "(?\u003c=\\s)\\|(?=\\s)"
652
+ },
653
+ {
654
+ "name": "punctuation.bracket.square.begin.mrc",
655
+ "match": "(?:^|(?\u003c=\\s))\\[(?=\\s)"
656
+ },
657
+ {
658
+ "name": "punctuation.bracket.square.end.mrc",
659
+ "match": "(?\u003c=\\s)\\](?:(?=\\s)|$)"
660
+ },
661
+ {
662
+ "name": "meta.block.mrc",
663
+ "begin": "(?\u003c=\\s)({)(?:(?=\\s)|$)",
664
+ "end": "(?:^|(?\u003c=\\s))(})(?:(?=\\s)|$)",
665
+ "patterns": [
666
+ {
667
+ "include": "$self"
668
+ }
669
+ ],
670
+ "beginCaptures": {
671
+ "1": {
672
+ "name": "punctuation.bracket.curly.begin.mrc"
673
+ }
674
+ },
675
+ "endCaptures": {
676
+ "1": {
677
+ "name": "punctuation.bracket.curly.end.mrc"
678
+ }
679
+ }
680
+ }
681
+ ]
682
+ },
683
+ "statements": {
684
+ "patterns": [
685
+ {
686
+ "name": "meta.conditional.statement.mrc",
687
+ "begin": "(?ix:(?:^|(?\u003c=[{}]\\s))\\s*(if|while)\\s+(\\() | (?:^|(?\u003c=}\\s))\\s*(elseif)\\s+(\\())",
688
+ "end": "(\\))",
689
+ "patterns": [
690
+ {
691
+ "include": "#statements-content"
692
+ },
693
+ {
694
+ "include": "#statements-recurse"
695
+ }
696
+ ],
697
+ "beginCaptures": {
698
+ "1": {
699
+ "name": "keyword.control.conditional.mrc"
700
+ },
701
+ "2": {
702
+ "name": "punctuation.bracket.round.begin.mrc"
703
+ },
704
+ "3": {
705
+ "name": "keyword.control.conditional.mrc"
706
+ },
707
+ "4": {
708
+ "name": "punctuation.bracket.round.begin.mrc"
709
+ }
710
+ },
711
+ "endCaptures": {
712
+ "1": {
713
+ "name": "punctuation.bracket.round.end.mrc"
714
+ }
715
+ }
716
+ },
717
+ {
718
+ "match": "(?i)(?:^|(?\u003c=}\\s))\\s*(else)(?=\\s)",
719
+ "captures": {
720
+ "1": {
721
+ "name": "keyword.control.conditional.mrc"
722
+ }
723
+ }
724
+ }
725
+ ]
726
+ },
727
+ "statements-content": {
728
+ "patterns": [
729
+ {
730
+ "include": "#comments"
731
+ },
732
+ {
733
+ "include": "#identifiers"
734
+ },
735
+ {
736
+ "include": "#variables"
737
+ },
738
+ {
739
+ "include": "#constants"
740
+ },
741
+ {
742
+ "include": "#comparison-operators"
743
+ }
744
+ ]
745
+ },
746
+ "statements-recurse": {
747
+ "patterns": [
748
+ {
749
+ "begin": "(\\()",
750
+ "end": "(\\))",
751
+ "patterns": [
752
+ {
753
+ "include": "#statements-content"
754
+ },
755
+ {
756
+ "include": "#statements-recurse"
757
+ }
758
+ ],
759
+ "beginCaptures": {
760
+ "1": {
761
+ "name": "punctuation.bracket.round.begin.mrc"
762
+ }
763
+ },
764
+ "endCaptures": {
765
+ "1": {
766
+ "name": "punctuation.bracket.round.end.mrc"
767
+ }
768
+ }
769
+ }
770
+ ]
771
+ },
772
+ "strings": {
773
+ "patterns": [
774
+ {
775
+ "name": "string.quoted.double.mrc",
776
+ "match": "(\").*?(\")",
777
+ "captures": {
778
+ "1": {
779
+ "name": "punctuation.definition.string.begin.mrc"
780
+ },
781
+ "2": {
782
+ "name": "punctuation.definition.string.end.mrc"
783
+ }
784
+ }
785
+ }
786
+ ]
787
+ },
788
+ "variable-assignments": {
789
+ "patterns": [
790
+ {
791
+ "match": "(?i)(?:(?:^|(?\u003c=[|{)]|else)\\s)\\s*((/*)!?var(\\s-g)?)?|(,)\\s+)\\s*((%)\\w+)(?:\\s+(=)\\s+)?",
792
+ "captures": {
793
+ "1": {
794
+ "name": "storage.type.mrc"
795
+ },
796
+ "2": {
797
+ "name": "punctuation.definition.command.mrc"
798
+ },
799
+ "3": {
800
+ "name": "punctuation.separator.delimiter.mrc"
801
+ },
802
+ "4": {
803
+ "name": "variable.other.normal.mrc"
804
+ },
805
+ "5": {
806
+ "name": "variable.global.set.mrc"
807
+ },
808
+ "6": {
809
+ "name": "meta.punctuation.definition.variable.other.normal.mrc"
810
+ },
811
+ "7": {
812
+ "name": "keyword.operator.assignment.mrc"
813
+ }
814
+ }
815
+ },
816
+ {
817
+ "match": "(?i)(?:^|(?\u003c=[|{)]|else)\\s)\\s*((/*)set)(?:\\s+\\-[a-z]+)?\\s+((%)\\w+)\\s",
818
+ "captures": {
819
+ "1": {
820
+ "name": "storage.type.mrc"
821
+ },
822
+ "2": {
823
+ "name": "punctuation.definition.command.mrc"
824
+ },
825
+ "3": {
826
+ "name": "variable.other.normal.mrc"
827
+ },
828
+ "4": {
829
+ "name": "meta.punctuation.definition.variable.other.normal.mrc"
830
+ }
831
+ }
832
+ }
833
+ ]
834
+ },
835
+ "variables": {
836
+ "patterns": [
837
+ {
838
+ "name": "variable.other.normal.mrc",
839
+ "match": "(%)\\w+",
840
+ "captures": {
841
+ "1": {
842
+ "name": "meta.punctuation.definition.variable.other.normal.mrc"
843
+ }
844
+ }
845
+ },
846
+ {
847
+ "name": "variable.other.binary.mrc",
848
+ "match": "(\u0026)\\w+",
849
+ "captures": {
850
+ "1": {
851
+ "name": "meta.punctuation.definition.variable.other.binary.mrc"
852
+ }
853
+ }
854
+ }
855
+ ]
856
+ }
857
+ }
858
+ }