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
@@ -7,6 +7,65 @@
7
7
  }
8
8
  ],
9
9
  "repository": {
10
+ "auth": {
11
+ "patterns": [
12
+ {
13
+ "match": "([^\\s:;]+)(:)([^\\s=:;]*)",
14
+ "captures": {
15
+ "1": {
16
+ "name": "constant.other.auth-info.curlrc"
17
+ },
18
+ "2": {
19
+ "patterns": [
20
+ {
21
+ "include": "etc#colon"
22
+ }
23
+ ]
24
+ },
25
+ "3": {
26
+ "name": "constant.other.auth-info.curlrc"
27
+ }
28
+ }
29
+ },
30
+ {
31
+ "match": "(:)([^\\s:;]*)",
32
+ "captures": {
33
+ "1": {
34
+ "patterns": [
35
+ {
36
+ "include": "etc#colon"
37
+ }
38
+ ]
39
+ },
40
+ "2": {
41
+ "name": "constant.other.auth-info.curlrc"
42
+ }
43
+ }
44
+ }
45
+ ]
46
+ },
47
+ "authProtocol": {
48
+ "match": "(?:\\G|^)([^\\\\:\\s/]*)(://|:)",
49
+ "captures": {
50
+ "1": {
51
+ "name": "entity.other.protocol.curlrc"
52
+ },
53
+ "2": {
54
+ "name": "keyword.operator.protocol.separator.curlrc"
55
+ }
56
+ }
57
+ },
58
+ "autoRefer": {
59
+ "match": "(;)(auto)\\b",
60
+ "captures": {
61
+ "1": {
62
+ "name": "punctuation.separator.key-value.semicolon.curlrc"
63
+ },
64
+ "2": {
65
+ "name": "variable.assignment.parameter.name.curlrc"
66
+ }
67
+ }
68
+ },
10
69
  "comment": {
11
70
  "name": "comment.line.number-sign.curlrc",
12
71
  "begin": "^#",
@@ -17,24 +76,526 @@
17
76
  }
18
77
  }
19
78
  },
20
- "cookieField": {
21
- "name": "meta.cookie.curlrc",
22
- "match": "([^\\s=;]+)(=)([^\\s=;]*)(;)?",
79
+ "header": {
80
+ "match": "(?:\\G|^)\\s*([-A-Za-z0-9]+)\\s*(?:(:)\\s*(.*)|(;))",
23
81
  "captures": {
24
82
  "1": {
25
- "name": "variable.assignment.cookie.name.curlrc"
83
+ "name": "entity.name.header.curlrc"
26
84
  },
27
85
  "2": {
28
86
  "patterns": [
29
87
  {
30
- "include": "etc#eql"
88
+ "include": "etc#colon"
89
+ }
90
+ ]
91
+ },
92
+ "3": {
93
+ "name": "string.unquoted.header-value.curlrc"
94
+ },
95
+ "4": {
96
+ "name": "punctuation.terminator.statement.semicolon.curlrc"
97
+ }
98
+ }
99
+ },
100
+ "longOptions": {
101
+ "patterns": [
102
+ {
103
+ "name": "meta.option.long.curlrc",
104
+ "match": "(?x)\n(?:\\G|^) \\s*\n(\n\t(--)?\n\t(?:anyauth|append|basic|cert-status|compressed-ssh|compressed|create-dirs|crlf|digest\n\t|disable-eprt|disable-epsv|disable|disallow-username-in-url|fail-early|fail|false-start\n\t|ftp-create-dirs|ftp-pasv|ftp-pret|ftp-skip-pasv-ip|ftp-ssl-ccc|ftp-ssl-control|get\n\t|globoff|haproxy-protocol|head|help|http1\\.[01]|http2(?:-prior-knowledge)?\n\t|ignore-content-length|include|insecure|ipv[46]|junk-session-cookies|list-only\n\t|location-trusted|location|manual|metalink|negotiate|netrc-optional|netrc|next\n\t|no-alpn|no-buffer|no-keepalive|no-npn|no-sessionid|ntlm-wb|ntlm|path-as-is|post30[1-3]\n\t|progress-bar|proxy-anyauth|proxy-basic|proxy-digest|proxy-insecure|proxy-negotiate\n\t|proxy-ntlm|proxy-ssl-allow-beast|proxy-tlsv1|proxytunnel|quote|raw|remote-header-name\n\t|remote-name-all|remote-name|remote-time|request-target|retry-connrefused|sasl-ir\n\t|show-error|silent|socks5-(?:basic|gssapi-nec|gssapi)|ssl-allow-beast|ssl-no-revoke\n\t|ssl-reqd|sslv[23]|ssl|stderr|styled-output|suppress-connect-headers\n\t|tcp-fastopen|tcp-nodelay|tftp-no-options|tlspassword|tlsv1\\.[0-3]\n\t|tlsv1|tr-encoding|trace-time|use-ascii|verbose|version|xattr)\n)\n(?=\\s|$)",
105
+ "captures": {
106
+ "1": {
107
+ "name": "entity.long.option.name.curlrc"
108
+ },
109
+ "2": {
110
+ "name": "punctuation.definition.dash.long.option.curlrc"
111
+ }
112
+ }
113
+ },
114
+ {
115
+ "name": "meta.option.long.curlrc",
116
+ "begin": "(?x) (?:\\G|^)\n(?!\\s*--\\w[-\\w]*\\s*[=:]) \\s*\n((--)?(?:doh-url|mail-auth|mail-from|mail-rcpt|noproxy|referer|url))\n(?:\\s*(=|:)|(?=\\s|$))",
117
+ "end": "$|(?:((\")((?:[^\"\\\\]|\\\\.)*)(?:(\")|(?=$)))|([^\\s]+))",
118
+ "beginCaptures": {
119
+ "1": {
120
+ "name": "entity.long.option.name.curlrc"
121
+ },
122
+ "2": {
123
+ "name": "punctuation.definition.dash.long.option.curlrc"
124
+ },
125
+ "3": {
126
+ "patterns": [
127
+ {
128
+ "include": "#separators"
129
+ }
130
+ ]
131
+ }
132
+ },
133
+ "endCaptures": {
134
+ "1": {
135
+ "name": "string.quoted.double.curlrc"
136
+ },
137
+ "2": {
138
+ "name": "punctuation.definition.string.begin.curlrc"
139
+ },
140
+ "3": {
141
+ "patterns": [
142
+ {
143
+ "include": "#url"
144
+ }
145
+ ]
146
+ },
147
+ "4": {
148
+ "name": "punctuation.definition.string.end.curlrc"
149
+ },
150
+ "5": {
151
+ "name": "string.unquoted.curlrc",
152
+ "patterns": [
153
+ {
154
+ "include": "#url"
155
+ }
156
+ ]
157
+ }
158
+ }
159
+ },
160
+ {
161
+ "name": "meta.option.long.curlrc",
162
+ "begin": "(?x) (?:\\G|^)\n(?!\\s*--\\w[-\\w]*\\s*[=:]) \\s*\n((--)?(?:header|proxy-header))\n(?:\\s*(=|:)|(?=\\s|$))",
163
+ "end": "$|(?:((\")((?:[^\"\\\\]|\\\\.)*)(?:(\")|(?=$)))|([^\\s]+))",
164
+ "beginCaptures": {
165
+ "1": {
166
+ "name": "entity.long.option.name.curlrc"
167
+ },
168
+ "2": {
169
+ "name": "punctuation.definition.dash.long.option.curlrc"
170
+ },
171
+ "3": {
172
+ "patterns": [
173
+ {
174
+ "include": "#separators"
175
+ }
176
+ ]
177
+ }
178
+ },
179
+ "endCaptures": {
180
+ "1": {
181
+ "name": "string.quoted.double.curlrc"
182
+ },
183
+ "2": {
184
+ "name": "punctuation.definition.string.begin.curlrc"
185
+ },
186
+ "3": {
187
+ "patterns": [
188
+ {
189
+ "include": "#header"
190
+ },
191
+ {
192
+ "include": "etc#bareword"
193
+ }
194
+ ]
195
+ },
196
+ "4": {
197
+ "name": "punctuation.definition.string.end.curlrc"
198
+ },
199
+ "5": {
200
+ "patterns": [
201
+ {
202
+ "include": "#header"
203
+ },
204
+ {
205
+ "include": "etc#bareword"
206
+ }
207
+ ]
208
+ }
209
+ }
210
+ },
211
+ {
212
+ "name": "meta.option.long.curlrc",
213
+ "begin": "(?x) (?:\\G|^)\n(?!\\s*--\\w[-\\w]*\\s*[=:]) \\s*\n((--)?(?:cookie|form-string|form|telnet-option))\n(?:\\s*(=|:)|(?=\\s|$))",
214
+ "end": "$|(?:((\")((?:[^\"\\\\]|\\\\.)*)(?:(\")|(?=$)))|([^\\s]+))",
215
+ "beginCaptures": {
216
+ "1": {
217
+ "name": "entity.long.option.name.curlrc"
218
+ },
219
+ "2": {
220
+ "name": "punctuation.definition.dash.long.option.curlrc"
221
+ },
222
+ "3": {
223
+ "patterns": [
224
+ {
225
+ "include": "#separators"
226
+ }
227
+ ]
228
+ }
229
+ },
230
+ "endCaptures": {
231
+ "1": {
232
+ "name": "string.quoted.double.curlrc"
233
+ },
234
+ "2": {
235
+ "name": "punctuation.definition.string.begin.curlrc"
236
+ },
237
+ "3": {
238
+ "patterns": [
239
+ {
240
+ "include": "#params"
241
+ }
242
+ ]
243
+ },
244
+ "4": {
245
+ "name": "punctuation.definition.string.end.curlrc"
246
+ },
247
+ "5": {
248
+ "patterns": [
249
+ {
250
+ "include": "#params"
251
+ }
252
+ ]
253
+ }
254
+ }
255
+ },
256
+ {
257
+ "name": "meta.option.long.curlrc",
258
+ "begin": "(?:\\G|^)(?!\\s*--\\w[-\\w]*\\s*[=:])\\s*((--)?(?:proto-default|proto-redir|proto))(?:\\s*(=|:)|(?=\\s|$))",
259
+ "end": "$|(?:((\")((?:[^\"\\\\]|\\\\.)*)(?:(\")|$))|([^\\s]+))",
260
+ "beginCaptures": {
261
+ "1": {
262
+ "name": "entity.long.option.name.curlrc"
263
+ },
264
+ "2": {
265
+ "name": "punctuation.definition.dash.long.option.curlrc"
266
+ },
267
+ "3": {
268
+ "patterns": [
269
+ {
270
+ "include": "#separators"
271
+ }
272
+ ]
273
+ }
274
+ },
275
+ "endCaptures": {
276
+ "1": {
277
+ "name": "string.quoted.double.curlrc"
278
+ },
279
+ "2": {
280
+ "name": "punctuation.definition.string.begin.curlrc"
281
+ },
282
+ "3": {
283
+ "patterns": [
284
+ {
285
+ "include": "#protocols"
286
+ }
287
+ ]
288
+ },
289
+ "4": {
290
+ "name": "punctuation.definition.string.end.curlrc"
291
+ },
292
+ "5": {
293
+ "patterns": [
294
+ {
295
+ "include": "#protocols"
296
+ }
297
+ ]
298
+ }
299
+ }
300
+ },
301
+ {
302
+ "name": "meta.option.long.curlrc",
303
+ "begin": "(?:\\G|^)(?!\\s*--\\w[-\\w]*\\s*[=:])\\s*((--)?ftp-port)(?:\\s*(=|:)|(?=\\s|$))",
304
+ "end": "$|(?:((\")((?:[^\"\\\\]|\\\\.)*)(?:(\")|$))|([^\\s]+))",
305
+ "beginCaptures": {
306
+ "1": {
307
+ "name": "entity.long.option.name.curlrc"
308
+ },
309
+ "2": {
310
+ "name": "punctuation.definition.dash.long.option.curlrc"
311
+ },
312
+ "3": {
313
+ "patterns": [
314
+ {
315
+ "include": "#separators"
316
+ }
317
+ ]
318
+ }
319
+ },
320
+ "endCaptures": {
321
+ "1": {
322
+ "name": "string.quoted.double.curlrc"
323
+ },
324
+ "2": {
325
+ "name": "punctuation.definition.string.begin.curlrc"
326
+ },
327
+ "3": {
328
+ "name": "constant.other.port-address.curlrc",
329
+ "patterns": [
330
+ {
331
+ "include": "etc#esc"
332
+ }
333
+ ]
334
+ },
335
+ "4": {
336
+ "name": "punctuation.definition.string.end.curlrc"
337
+ },
338
+ "5": {
339
+ "name": "constant.other.port-address.curlrc"
340
+ }
341
+ }
342
+ },
343
+ {
344
+ "name": "meta.option.long.curlrc",
345
+ "begin": "(?:\\G|^)(?!\\s*--\\w[-\\w]*\\s*[=:])\\s*((--)?hostpubmd5)(?:\\s*(=|:)|(?=\\s|$))",
346
+ "end": "$|(?:((\")((?:[^\"\\\\]|\\\\.)*)(?:(\")|$))|([^\\s]+))",
347
+ "beginCaptures": {
348
+ "1": {
349
+ "name": "entity.long.option.name.curlrc"
350
+ },
351
+ "2": {
352
+ "name": "punctuation.definition.dash.long.option.curlrc"
353
+ },
354
+ "3": {
355
+ "patterns": [
356
+ {
357
+ "include": "#separators"
358
+ }
359
+ ]
360
+ }
361
+ },
362
+ "endCaptures": {
363
+ "1": {
364
+ "name": "string.quoted.double.curlrc"
365
+ },
366
+ "2": {
367
+ "name": "punctuation.definition.string.begin.curlrc"
368
+ },
369
+ "3": {
370
+ "name": "constant.other.md5.checksum.curlrc",
371
+ "patterns": [
372
+ {
373
+ "include": "etc#esc"
374
+ }
375
+ ]
376
+ },
377
+ "4": {
378
+ "name": "punctuation.definition.string.end.curlrc"
379
+ },
380
+ "5": {
381
+ "name": "constant.other.md5.checksum.curlrc"
382
+ }
383
+ }
384
+ },
385
+ {
386
+ "name": "meta.option.long.curlrc",
387
+ "begin": "(?:\\G|^)(?!\\s*--\\w[-\\w]*\\s*[=:])\\s*((--)?(?:local-port|range))(?:\\s*(=|:)|(?=\\s|$))",
388
+ "end": "$|(?:((\")((?:[^\"\\\\]|\\\\.)*)(?:(\")|$))|([^\\s]+))",
389
+ "beginCaptures": {
390
+ "1": {
391
+ "name": "entity.long.option.name.curlrc"
392
+ },
393
+ "2": {
394
+ "name": "punctuation.definition.dash.long.option.curlrc"
395
+ },
396
+ "3": {
397
+ "patterns": [
398
+ {
399
+ "include": "#separators"
400
+ }
401
+ ]
402
+ }
403
+ },
404
+ "endCaptures": {
405
+ "1": {
406
+ "name": "string.quoted.double.curlrc"
407
+ },
408
+ "2": {
409
+ "name": "punctuation.definition.string.begin.curlrc"
410
+ },
411
+ "3": {
412
+ "patterns": [
413
+ {
414
+ "include": "#range"
415
+ },
416
+ {
417
+ "include": "etc#esc"
418
+ },
419
+ {
420
+ "include": "etc#bareword"
421
+ }
422
+ ]
423
+ },
424
+ "4": {
425
+ "name": "punctuation.definition.string.end.curlrc"
426
+ },
427
+ "5": {
428
+ "patterns": [
429
+ {
430
+ "include": "#range"
431
+ },
432
+ {
433
+ "include": "etc#bareword"
434
+ }
435
+ ]
436
+ }
437
+ }
438
+ },
439
+ {
440
+ "name": "meta.option.long.curlrc",
441
+ "begin": "(?x) (?:\\G|^)\n(?!\\s*--\\w[-\\w]*\\s*[=:](?=\\s)) \\s*\n(\n\t(--)?\n\t(?:cert|connect-to|preproxy|proxy-cert|proxy-user|proxy1\\.0\n\t|proxy|resolve|socks4a?|socks5-hostname|socks5|user)\n)\n(?:\\s*(=|:)|(?=\\s|$))",
442
+ "end": "$|(?:((\")((?:[^\"\\\\]|\\\\.)*)(?:(\")|$))|([^\\s]+))",
443
+ "beginCaptures": {
444
+ "1": {
445
+ "name": "entity.long.option.name.curlrc"
446
+ },
447
+ "2": {
448
+ "name": "punctuation.definition.dash.long.option.curlrc"
449
+ },
450
+ "3": {
451
+ "patterns": [
452
+ {
453
+ "include": "#separators"
454
+ }
455
+ ]
456
+ }
457
+ },
458
+ "endCaptures": {
459
+ "1": {
460
+ "name": "string.quoted.double.curlrc"
461
+ },
462
+ "2": {
463
+ "name": "punctuation.definition.string.begin.curlrc"
464
+ },
465
+ "3": {
466
+ "patterns": [
467
+ {
468
+ "include": "#auth"
469
+ },
470
+ {
471
+ "include": "etc#bareword"
472
+ }
473
+ ]
474
+ },
475
+ "4": {
476
+ "name": "punctuation.definition.string.end.curlrc"
477
+ },
478
+ "5": {
479
+ "patterns": [
480
+ {
481
+ "include": "#auth"
482
+ },
483
+ {
484
+ "include": "etc#bareword"
485
+ }
486
+ ]
487
+ }
488
+ }
489
+ },
490
+ {
491
+ "name": "meta.option.long.curlrc",
492
+ "begin": "(?x) (?:\\G|^)\n(?!\\s*--\\w[-\\w]*\\s*[=:](?=\\s)) \\s*\n(\n\t(--)?\n\t(?:abstract-unix-socket|cacert|capath|cert-type|ciphers|config|cookie-jar|crlfile|data-ascii\n\t|data-binary|data-raw|data-urlencode|data|delegation|dns-interface|dns-ipv[46]-addr|dns-servers\n\t|dump-header|egd-file|engine|ftp-(?:account|alternative-to-user|ssl-ccc-mode|method)|interface\n\t|key-type|key|krb|libcurl|login-options|netrc-file|oauth2-bearer|output|pass|proxy-(?:cacert\n\t|capath|cert-type|crlfile|key-type|key|pass|service-name|tlsauthtype|tlspassword|tlsuser)\n\t|pinnedpubkey|proxy-ciphers|proxy-pinnedpubkey|pubkey|random-file|proxy-tls13-ciphers|request\n\t|service-name|socks5-gssapi-service|tls13-ciphers|tlsauthtype|tls-max|tlsuser|trace-ascii\n\t|trace|unix-socket|upload-file|user-agent|write-out)\n)\n(?:\\s*(=|:)|(?=\\s|$))",
493
+ "end": "$|(?:(=)?|(?:([-A-Za-z0-9%_]+)(=)?)?([@\u003c]))?(?:((\")((?:[^\"\\\\]|\\\\.)*)(?:(\")|$))|([^\\s]+))",
494
+ "beginCaptures": {
495
+ "1": {
496
+ "name": "entity.long.option.name.curlrc"
497
+ },
498
+ "2": {
499
+ "name": "punctuation.definition.dash.long.option.curlrc"
500
+ },
501
+ "3": {
502
+ "patterns": [
503
+ {
504
+ "include": "#separators"
505
+ }
506
+ ]
507
+ }
508
+ },
509
+ "endCaptures": {
510
+ "1": {
511
+ "name": "keyword.operator.encoding-modifier.curlrc"
512
+ },
513
+ "2": {
514
+ "name": "entity.name.form-field.curlrc"
515
+ },
516
+ "3": {
517
+ "patterns": [
518
+ {
519
+ "include": "etc#eql"
520
+ }
521
+ ]
522
+ },
523
+ "4": {
524
+ "name": "keyword.operator.source-modifier.curlrc"
525
+ },
526
+ "5": {
527
+ "name": "string.quoted.double.curlrc"
528
+ },
529
+ "6": {
530
+ "name": "punctuation.definition.string.begin.curlrc"
531
+ },
532
+ "7": {
533
+ "patterns": [
534
+ {
535
+ "include": "etc#esc"
536
+ }
537
+ ]
538
+ },
539
+ "8": {
540
+ "name": "punctuation.definition.string.end.curlrc"
541
+ },
542
+ "9": {
543
+ "name": "string.unquoted.curlrc"
31
544
  }
32
- ]
545
+ }
33
546
  },
34
- "3": {
35
- "name": "constant.other.cookie.value.curlrc"
547
+ {
548
+ "name": "meta.option.long.curlrc",
549
+ "begin": "(?x) (?:\\G|^)\n(?!\\s*--\\w[-\\w]*\\s*[=:])\n\\s*\n(\n\t(--)?\n\t(?:connect-timeout|continue-at|expect100-timeout|happy-eyeballs-timeout-ms|keepalive-time\n\t|limit-rate|max-filesize|max-redirs|max-time|retry-delay|retry-max-time|retry|speed-limit\n\t|speed-time|tftp-blksize|time-cond)\n) (?:\\s*(=|:)|(?=\\s|$))",
550
+ "end": "$|(?:((\")((?:[^\"\\\\]|\\\\.)*)(?:(\")|$))|([^\\s]+))",
551
+ "beginCaptures": {
552
+ "1": {
553
+ "name": "entity.long.option.name.curlrc"
554
+ },
555
+ "2": {
556
+ "name": "punctuation.definition.dash.long.option.curlrc"
557
+ },
558
+ "3": {
559
+ "patterns": [
560
+ {
561
+ "include": "#separators"
562
+ }
563
+ ]
564
+ }
565
+ },
566
+ "endCaptures": {
567
+ "1": {
568
+ "name": "string.quoted.double.curlrc"
569
+ },
570
+ "2": {
571
+ "name": "punctuation.definition.string.begin.curlrc"
572
+ },
573
+ "3": {
574
+ "patterns": [
575
+ {
576
+ "include": "etc#num"
577
+ },
578
+ {
579
+ "include": "etc#bareword"
580
+ }
581
+ ]
582
+ },
583
+ "4": {
584
+ "name": "punctuation.definition.string.end.curlrc"
585
+ },
586
+ "5": {
587
+ "patterns": [
588
+ {
589
+ "include": "etc#num"
590
+ },
591
+ {
592
+ "include": "etc#bareword"
593
+ }
594
+ ]
595
+ }
596
+ }
36
597
  }
37
- }
598
+ ]
38
599
  },
39
600
  "main": {
40
601
  "patterns": [
@@ -43,110 +604,304 @@
43
604
  },
44
605
  {
45
606
  "include": "#shortOptions"
607
+ },
608
+ {
609
+ "include": "#longOptions"
46
610
  }
47
611
  ]
48
612
  },
49
- "separators": {
613
+ "params": {
50
614
  "patterns": [
51
615
  {
52
- "include": "etc#eql"
616
+ "include": "#autoRefer"
53
617
  },
54
618
  {
55
- "include": "etc#colon"
56
- }
57
- ]
58
- },
59
- "shortOptions": {
60
- "patterns": [
619
+ "name": "keyword.operator.encoding-modifier.curlrc",
620
+ "match": "(?:\\G|^|(?\u003c=\\G\"|^\"))="
621
+ },
61
622
  {
62
- "match": "^(-)?([:#012346aBfgGhiIjJklLMnNOpqQRsSvV])(?=\\s|$)",
623
+ "match": "(?:\\G|^|(?\u003c=\\G\"|^\"))(;)([^\\s=;\"]+(?=\"?(?:\\s|$)))?",
63
624
  "captures": {
64
625
  "1": {
65
- "name": "punctuation.definition.dash.short.option.curlrc"
626
+ "name": "punctuation.separator.key-value.semicolon.curlrc"
66
627
  },
67
628
  "2": {
68
- "name": "entity.short.option.name.curlrc"
629
+ "name": "variable.assignment.parameter.name.curlrc"
69
630
  }
70
631
  }
71
632
  },
72
633
  {
73
- "name": "meta.option.$2.curlrc",
74
- "begin": "^(-)?([cDdKoT])(\\s*=|\\s*:|\\s+)",
75
- "end": "$",
76
- "patterns": [
77
- {
78
- "include": "#string"
634
+ "match": "(?:\\G|^|(?\u003c=\\G\"|^\"))(?:([-A-Za-z0-9%_]+)(=)?)?([@\u003c])",
635
+ "captures": {
636
+ "1": {
637
+ "name": "entity.name.form-field.curlrc"
79
638
  },
80
- {
81
- "include": "etc#bareword"
639
+ "2": {
640
+ "patterns": [
641
+ {
642
+ "include": "etc#eql"
643
+ }
644
+ ]
645
+ },
646
+ "3": {
647
+ "name": "keyword.operator.source-modifier.curlrc"
82
648
  }
83
- ],
84
- "beginCaptures": {
649
+ }
650
+ },
651
+ {
652
+ "name": "meta.parameter.curlrc",
653
+ "match": "([^\\s=;]+)(=)([^\\s=;]*)(;)?",
654
+ "captures": {
85
655
  "1": {
86
- "name": "punctuation.definition.dash.short.option.curlrc"
656
+ "name": "variable.assignment.parameter.name.curlrc"
87
657
  },
88
658
  "2": {
89
- "name": "entity.short.option.name.curlrc"
659
+ "patterns": [
660
+ {
661
+ "include": "etc#eql"
662
+ }
663
+ ]
90
664
  },
91
665
  "3": {
666
+ "name": "constant.other.parameter.value.curlrc"
667
+ },
668
+ "4": {
669
+ "name": "punctuation.separator.key-value.semicolon.curlrc"
670
+ }
671
+ }
672
+ },
673
+ {
674
+ "match": "(?\u003c=@)(\"(?:[^\\\\\"]|\\\\.)++\"|(?:[^\"\\s;\\\\]|\\\\.)++)(?:(;)|(?=$|\\s))",
675
+ "captures": {
676
+ "1": {
677
+ "name": "variable.assignment.parameter.name.curlrc",
92
678
  "patterns": [
93
679
  {
94
- "include": "#separators"
680
+ "include": "etc#esc"
95
681
  }
96
682
  ]
683
+ },
684
+ "2": {
685
+ "name": "punctuation.separator.key-value.semicolon.curlrc"
97
686
  }
98
687
  }
99
688
  },
100
689
  {
101
- "name": "meta.option.$2.curlrc",
102
- "begin": "^(-)?(b)(\\s*=|\\s*:|\\s+)",
103
- "end": "$",
104
- "patterns": [
105
- {
106
- "name": "string.quoted.double.cookie-data.curlrc",
107
- "begin": "\"(?=[^\"=]*=)",
108
- "end": "\"|(?=$)",
690
+ "include": "etc#esc"
691
+ },
692
+ {
693
+ "include": "etc#bareword"
694
+ }
695
+ ]
696
+ },
697
+ "protocols": {
698
+ "patterns": [
699
+ {
700
+ "name": "constant.other.protocol-name.curlrc",
701
+ "match": "[^\\s,+=-]+"
702
+ },
703
+ {
704
+ "name": "keyword.control.permit-protocol.curlrc",
705
+ "match": "\\+"
706
+ },
707
+ {
708
+ "name": "keyword.control.deny-protocol.curlrc",
709
+ "match": "-"
710
+ },
711
+ {
712
+ "name": "keyword.control.permit-protocol.only.curlrc",
713
+ "match": "="
714
+ },
715
+ {
716
+ "include": "etc#comma"
717
+ }
718
+ ]
719
+ },
720
+ "range": {
721
+ "patterns": [
722
+ {
723
+ "name": "meta.byte-range.curlrc",
724
+ "match": "([0-9]+)(-)([0-9]+)?|(-)([0-9]+)",
725
+ "captures": {
726
+ "1": {
727
+ "name": "constant.numeric.integer.int.decimal.dec.range.start.curlrc"
728
+ },
729
+ "2": {
730
+ "name": "punctuation.separator.range.dash.curlrc"
731
+ },
732
+ "3": {
733
+ "name": "constant.numeric.integer.int.decimal.dec.range.end.curlrc"
734
+ },
735
+ "4": {
736
+ "name": "punctuation.separator.range.dash.curlrc"
737
+ },
738
+ "5": {
739
+ "name": "constant.numeric.integer.int.decimal.dec.range.end.curlrc"
740
+ }
741
+ }
742
+ },
743
+ {
744
+ "include": "etc#comma"
745
+ },
746
+ {
747
+ "include": "etc#int"
748
+ }
749
+ ]
750
+ },
751
+ "separators": {
752
+ "patterns": [
753
+ {
754
+ "include": "etc#eql"
755
+ },
756
+ {
757
+ "include": "etc#colon"
758
+ }
759
+ ]
760
+ },
761
+ "shortOptions": {
762
+ "patterns": [
763
+ {
764
+ "name": "meta.option.short.curlrc",
765
+ "begin": "^\\s*((-)[:#012346BGIJLMNOQRSVafghijklnpqsv]*[ACDEFHKPTUXYbcdemortuwxyz])",
766
+ "end": "(?x)\n$\n|\n\n# Numbers\n(?\u003c=[CYmyz])\\G\\s*\n([-+]?[0-9.]+)\n\n|\n\n# Byte range\n(?\u003c=r)\\G\\s*\n([-0-9,]+)\n\n|\n\n# “key=value” pairs\n(?\u003c=[Fbt])\\G\\s*\n(?:\n\t((\")((?:[^\"\\\\]|\\\\.)*)(?:(\")|$))\n\t|\n\t([^\\s]+)\n)\n\n|\n\n# “key:value” pairs\n(?\u003c=[EUux])\\G\\s*\n([^\\\\:\\s/]*://)?\n(\n\t(?:[^\\\\:\\s]|\\\\.)+\n\t(?::(?:[^\\\\:\\s]|\\\\.)+)*\n\t:?\n)\n\n|\n\n# Headers\n(?\u003c=H)\\G\\s*\n(?:\n\t((\")((?:[^\"\\\\]|\\\\.)*)(?:(\")|$))\n\t|\n\t([^\\s]+)\n)\n\n|\n\n# URLs\n(?\u003c=e)\\G\\s*\n(?:\n\t((\")((?:[^\"\\\\]|\\\\.)*)(?:(\")|$))\n\t|\n\t([^\\s]+)\n)\n\n|\n\n# Anything else\n(?:\n\t((\")((?:[^\"\\\\]|\\\\.)*)(?:(\")|$))\n\t|\n\t([^\\s]+)\n)",
767
+ "beginCaptures": {
768
+ "1": {
769
+ "name": "entity.short.option.name.curlrc"
770
+ },
771
+ "2": {
772
+ "name": "punctuation.definition.dash.short.option.curlrc"
773
+ }
774
+ },
775
+ "endCaptures": {
776
+ "1": {
109
777
  "patterns": [
110
778
  {
111
- "include": "#cookieField"
112
- },
779
+ "include": "etc#num"
780
+ }
781
+ ]
782
+ },
783
+ "10": {
784
+ "name": "meta.http-headers.curlrc"
785
+ },
786
+ "11": {
787
+ "name": "punctuation.definition.string.begin.curlrc"
788
+ },
789
+ "12": {
790
+ "patterns": [
113
791
  {
114
- "include": "etc#bareword"
792
+ "include": "#header"
115
793
  }
116
- ],
117
- "beginCaptures": {
118
- "0": {
119
- "name": "punctuation.definition.string.begin.curlrc"
794
+ ]
795
+ },
796
+ "13": {
797
+ "name": "punctuation.definition.string.end.curlrc"
798
+ },
799
+ "14": {
800
+ "patterns": [
801
+ {
802
+ "include": "#header"
120
803
  }
121
- },
122
- "endCaptures": {
123
- "0": {
124
- "name": "punctuation.definition.string.end.curlrc"
804
+ ]
805
+ },
806
+ "15": {
807
+ "name": "meta.url-string.curlrc"
808
+ },
809
+ "16": {
810
+ "name": "punctuation.definition.string.begin.curlrc"
811
+ },
812
+ "17": {
813
+ "patterns": [
814
+ {
815
+ "include": "#url"
125
816
  }
126
- }
817
+ ]
127
818
  },
128
- {
129
- "include": "#cookieField"
819
+ "18": {
820
+ "name": "punctuation.definition.string.end.curlrc"
130
821
  },
131
- {
132
- "include": "etc#bareword"
133
- }
134
- ],
135
- "beginCaptures": {
136
- "1": {
137
- "name": "punctuation.definition.dash.short.option.curlrc"
822
+ "19": {
823
+ "patterns": [
824
+ {
825
+ "include": "#url"
826
+ }
827
+ ]
138
828
  },
139
829
  "2": {
140
- "name": "entity.short.option.name.curlrc"
830
+ "patterns": [
831
+ {
832
+ "include": "#range"
833
+ }
834
+ ]
835
+ },
836
+ "20": {
837
+ "name": "string.quoted.double.curlrc"
838
+ },
839
+ "21": {
840
+ "name": "punctuation.definition.string.begin.curlrc"
841
+ },
842
+ "22": {
843
+ "patterns": [
844
+ {
845
+ "include": "etc#esc"
846
+ }
847
+ ]
848
+ },
849
+ "23": {
850
+ "name": "punctuation.definition.string.end.curlrc"
851
+ },
852
+ "24": {
853
+ "name": "string.unquoted.curlrc"
141
854
  },
142
855
  "3": {
856
+ "name": "meta.parameter-string.curlrc"
857
+ },
858
+ "4": {
859
+ "name": "punctuation.definition.string.begin.curlrc"
860
+ },
861
+ "5": {
143
862
  "patterns": [
144
863
  {
145
- "include": "#separators"
864
+ "include": "#params"
865
+ }
866
+ ]
867
+ },
868
+ "6": {
869
+ "name": "punctuation.definition.string.end.curlrc"
870
+ },
871
+ "7": {
872
+ "patterns": [
873
+ {
874
+ "include": "#params"
875
+ }
876
+ ]
877
+ },
878
+ "8": {
879
+ "patterns": [
880
+ {
881
+ "include": "#authProtocol"
882
+ }
883
+ ]
884
+ },
885
+ "9": {
886
+ "patterns": [
887
+ {
888
+ "include": "#auth"
146
889
  }
147
890
  ]
148
891
  }
149
892
  }
893
+ },
894
+ {
895
+ "name": "meta.option.short.curlrc",
896
+ "match": "^\\s*((-)[:#012346BGIJLMNOQRSVafghijklnpqsv]+)",
897
+ "captures": {
898
+ "1": {
899
+ "name": "entity.short.option.name.curlrc"
900
+ },
901
+ "2": {
902
+ "name": "punctuation.definition.dash.short.option.curlrc"
903
+ }
904
+ }
150
905
  }
151
906
  ]
152
907
  },
@@ -160,7 +915,7 @@
160
915
  "match": "(\\\\)[\\\\\"tnrv]",
161
916
  "captures": {
162
917
  "1": {
163
- "name": "punctuation.definition.escape.backslash.gitconfig"
918
+ "name": "punctuation.definition.escape.backslash.curlrc"
164
919
  }
165
920
  }
166
921
  }
@@ -175,6 +930,55 @@
175
930
  "name": "punctuation.definition.string.end.curlrc"
176
931
  }
177
932
  }
933
+ },
934
+ "url": {
935
+ "patterns": [
936
+ {
937
+ "include": "#autoRefer"
938
+ },
939
+ {
940
+ "include": "etc#comma"
941
+ },
942
+ {
943
+ "match": "(?\u003c=\\G\"|^\")((?:[^\"\\\\]|\\\\.)*)(?=$|\"|;)|(?:\\G(?\u003c!\")|^)([^\\s,]+?)(?=$|\\s|;|,)",
944
+ "captures": {
945
+ "1": {
946
+ "patterns": [
947
+ {
948
+ "include": "etc#url"
949
+ },
950
+ {
951
+ "include": "#urlNoSchema"
952
+ }
953
+ ]
954
+ },
955
+ "2": {
956
+ "patterns": [
957
+ {
958
+ "include": "etc#url"
959
+ },
960
+ {
961
+ "include": "#urlNoSchema"
962
+ }
963
+ ]
964
+ }
965
+ }
966
+ },
967
+ {
968
+ "include": "#params"
969
+ },
970
+ {
971
+ "include": "etc#bareword"
972
+ }
973
+ ]
974
+ },
975
+ "urlNoSchema": {
976
+ "match": "(?:\\G|^)\\s*([-a-zA-Z0-9]+(?:\\.|@)[-a-zA-Z0-9]+.*)\\s*",
977
+ "captures": {
978
+ "1": {
979
+ "name": "constant.other.reference.link.underline.url.curlrc"
980
+ }
981
+ }
178
982
  }
179
983
  }
180
984
  }