github-linguist 5.0.2 → 5.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f657560e2d59c601319fa6bab23bc7c0f4d784c3
4
- data.tar.gz: 8544744619b6cdcfd6a2708315eab6bc963e6415
3
+ metadata.gz: 56289e9cd7cef6ea2d32066714be337555e80ef5
4
+ data.tar.gz: bbbcf1fdd511fb569ce5956bf3c288cebcf90fc1
5
5
  SHA512:
6
- metadata.gz: 38766f43d638fb5344544cc4392993556bfd464d7f68f7b9b262a2b171a3c34367f96a9ac67b855308424be0d597d325ac62abfa2cdead5a9a82185a7fcc1df5
7
- data.tar.gz: 15b7a2864d79889e5a09ee12c0c372c0b77ac55391fec99eae2226f12d88d58eb47c8da27f743100a1ab35e8296d10e72da19a662ca1133aa4fc84d525cd0809
6
+ metadata.gz: 10434a82231e7d3602398926e55670718b8d476b2cb896f9b84ecd9821939c9392bf2d788f1e43160b3ac0aad2cc2eb1fecfad1ac6e03ea124b42c09faeac41e
7
+ data.tar.gz: 27786ad89380d53b8121cf08ad6d29c965f887308bd87d7e0fcee5bb4597fb28db61a753ad08be38f31322ffb26ec8ec8e19d61f729bdebefa0b6c3bc225ded5
@@ -947,6 +947,27 @@
947
947
  "end": "\\n",
948
948
  "name": "comment.line.number-sign.applescript"
949
949
  },
950
+ {
951
+ "begin": "(^[ \\t]+)?(?=#)",
952
+ "beginCaptures": {
953
+ "1": {
954
+ "name": "punctuation.whitespace.comment.leading.applescript"
955
+ }
956
+ },
957
+ "end": "(?!\\G)",
958
+ "patterns": [
959
+ {
960
+ "begin": "#",
961
+ "beginCaptures": {
962
+ "0": {
963
+ "name": "punctuation.definition.comment.applescript"
964
+ }
965
+ },
966
+ "end": "\\n",
967
+ "name": "comment.line.number-sign.applescript"
968
+ }
969
+ ]
970
+ },
950
971
  {
951
972
  "begin": "(^[ \\t]+)?(?=--)",
952
973
  "beginCaptures": {
@@ -345,6 +345,9 @@
345
345
  },
346
346
  {
347
347
  "include": "#generic-constraints"
348
+ },
349
+ {
350
+ "include": "#comments"
348
351
  }
349
352
  ]
350
353
  },
@@ -477,6 +480,9 @@
477
480
  "name": "storage.type.cs"
478
481
  }
479
482
  }
483
+ },
484
+ {
485
+ "include": "#comments"
480
486
  }
481
487
  ]
482
488
  },
@@ -20,6 +20,26 @@
20
20
  }
21
21
  },
22
22
  "patterns": [
23
+ {
24
+ "name": "meta.orchestra.csound-document",
25
+ "begin": "<(CsOptions)>",
26
+ "end": "</(CsOptions)>",
27
+ "beginCaptures": {
28
+ "1": {
29
+ "name": "entity.name.tag.csound-document"
30
+ }
31
+ },
32
+ "endCaptures": {
33
+ "1": {
34
+ "name": "entity.name.tag.csound-document"
35
+ }
36
+ },
37
+ "patterns": [
38
+ {
39
+ "include": "source.csound#comments"
40
+ }
41
+ ]
42
+ },
23
43
  {
24
44
  "name": "meta.orchestra.csound-document",
25
45
  "begin": "<(CsInstruments)>",
@@ -13,7 +13,79 @@
13
13
  },
14
14
  {
15
15
  "name": "keyword.control.csound-score",
16
- "match": "[abefimq-tv-z]|[nN][pP]?"
16
+ "match": "[abCefiqstvxy]"
17
+ },
18
+ {
19
+ "name": "entity.invalid.illegal.csound-score",
20
+ "match": "w"
21
+ },
22
+ {
23
+ "name": "constant.numeric.language.csound-score",
24
+ "match": "z"
25
+ },
26
+ {
27
+ "name": "meta.p-symbol.csound-score",
28
+ "match": "((?:[nN]|[pP])[pP])(\\d+)",
29
+ "beginCaptures": {
30
+ "1": {
31
+ "name": "keyword.control.csound-score"
32
+ },
33
+ "2": {
34
+ "name": "constant.numeric.integer.decimal.csound-score"
35
+ }
36
+ }
37
+ },
38
+ {
39
+ "begin": "(m)|(n)",
40
+ "end": "\\n",
41
+ "beginCaptures": {
42
+ "1": {
43
+ "name": "keyword.mark.preprocessor.csound-score"
44
+ },
45
+ "2": {
46
+ "name": "keyword.repeat-mark.preprocessor.csound-score"
47
+ }
48
+ },
49
+ "patterns": [
50
+ {
51
+ "include": "source.csound#comments"
52
+ },
53
+ {
54
+ "name": "entity.name.label.csound-score",
55
+ "match": "[A-Z_a-z]\\w*"
56
+ }
57
+ ]
58
+ },
59
+ {
60
+ "begin": "r\\b",
61
+ "end": "\\n",
62
+ "beginCaptures": {
63
+ "0": {
64
+ "name": "keyword.repeat-section.preprocessor.csound-score"
65
+ }
66
+ },
67
+ "patterns": [
68
+ {
69
+ "include": "source.csound#comments"
70
+ },
71
+ {
72
+ "begin": "\\d+",
73
+ "end": "(?=\\n)",
74
+ "beginCaptures": {
75
+ "0": {
76
+ "name": "constant.numeric.integer.decimal.csound-score"
77
+ }
78
+ },
79
+ "patterns": [
80
+ {
81
+ "include": "source.csound#comments"
82
+ },
83
+ {
84
+ "include": "source.csound#macroNames"
85
+ }
86
+ ]
87
+ }
88
+ ]
17
89
  },
18
90
  {
19
91
  "include": "source.csound#numbers"
@@ -186,6 +186,18 @@
186
186
  }
187
187
  ]
188
188
  },
189
+ "formatSpecifiers": {
190
+ "patterns": [
191
+ {
192
+ "name": "constant.character.placeholder.csound",
193
+ "match": "%[#0\\- +]*\\d*(?:\\.\\d+)?[diuoxXfFeEgGaAcs]"
194
+ },
195
+ {
196
+ "name": "constant.character.escape.csound",
197
+ "match": "%%"
198
+ }
199
+ ]
200
+ },
189
201
  "labels": {
190
202
  "patterns": [
191
203
  {
@@ -216,6 +228,40 @@
216
228
  }
217
229
  ]
218
230
  },
231
+ "macroParameterValueParenthetical": {
232
+ "patterns": [
233
+ {
234
+ "name": "meta.macro-parameter-value-parenthetical.csound",
235
+ "begin": "\\(",
236
+ "end": "(\\))|(\\\\\\))",
237
+ "beginCaptures": {
238
+ "0": {
239
+ "name": "constant.character.escape.csound"
240
+ }
241
+ },
242
+ "endCaptures": {
243
+ "1": {
244
+ "name": "entity.invalid.illegal.preprocessor.csound"
245
+ },
246
+ "2": {
247
+ "name": "constant.character.escape.csound"
248
+ }
249
+ },
250
+ "patterns": [
251
+ {
252
+ "include": "#macroParameterValueParenthetical"
253
+ },
254
+ {
255
+ "name": "entity.invalid.illegal.preprocessor.csound",
256
+ "match": "[#']"
257
+ },
258
+ {
259
+ "include": "$self"
260
+ }
261
+ ]
262
+ }
263
+ ]
264
+ },
219
265
  "macroUses": {
220
266
  "patterns": [
221
267
  {
@@ -228,9 +274,12 @@
228
274
  }
229
275
  },
230
276
  "patterns": [
277
+ {
278
+ "include": "#macroParameterValueParenthetical"
279
+ },
231
280
  {
232
281
  "name": "punctuation.macro-parameter-separator.csound",
233
- "match": "\\#"
282
+ "match": "[#']"
234
283
  },
235
284
  {
236
285
  "include": "$self"
@@ -249,7 +298,6 @@
249
298
  "include": "#floatingPointNumbers"
250
299
  },
251
300
  {
252
- "name": "",
253
301
  "match": "(0[Xx])([0-9A-Fa-f]+)",
254
302
  "captures": {
255
303
  "1": {
@@ -291,6 +339,9 @@
291
339
  "patterns": [
292
340
  {
293
341
  "include": "#escapeSequences"
342
+ },
343
+ {
344
+ "include": "#formatSpecifiers"
294
345
  }
295
346
  ]
296
347
  },
@@ -332,14 +383,6 @@
332
383
  "beginCaptures": {
333
384
  "1": {
334
385
  "name": "support.function.csound"
335
- },
336
- "2": {
337
- "name": "punctuation.definition.string.begin.csound"
338
- }
339
- },
340
- "endCaptures": {
341
- "0": {
342
- "name": "punctuation.definition.string.end.csound"
343
386
  }
344
387
  },
345
388
  "patterns": [
@@ -361,23 +404,26 @@
361
404
  {
362
405
  "include": "#macroUses"
363
406
  },
407
+ {
408
+ "name": "constant.character.escape.csound",
409
+ "match": "\\\\\\\\[aAbBnNrRtT]"
410
+ },
364
411
  {
365
412
  "include": "#escapeSequences"
366
413
  },
367
414
  {
368
- "name": "constant.character.placeholder.csound",
369
- "match": "%\\d*(?:\\.\\d+)?[cdhilouxX]|[~^]{1,2}"
415
+ "include": "#formatSpecifiers"
370
416
  },
371
417
  {
372
418
  "name": "constant.character.escape.csound",
373
- "match": "%[!%nNrRtT]|\\\\[ABNRT]"
419
+ "match": "%[!nNrRtT]|[~^]{1,2}"
374
420
  }
375
421
  ]
376
422
  }
377
423
  ]
378
424
  },
379
425
  {
380
- "begin": "\\b(scoreline(?:_i)?)[ \\t]*(\\{\\{)",
426
+ "begin": "\\b(readscore|scoreline(?:_i)?)[ \\t]*(\\{\\{)",
381
427
  "end": "\\}\\}",
382
428
  "beginCaptures": {
383
429
  "1": {
@@ -628,6 +674,9 @@
628
674
  },
629
675
  {
630
676
  "include": "#escapeSequences"
677
+ },
678
+ {
679
+ "include": "#formatSpecifiers"
631
680
  }
632
681
  ]
633
682
  }
@@ -107,7 +107,7 @@
107
107
  {
108
108
  "captures": {
109
109
  "1": {
110
- "name": "punctuation.definition.inserted.diff"
110
+ "name": "punctuation.definition.changed.diff"
111
111
  }
112
112
  },
113
113
  "match": "^(!).*$\\n?",
@@ -116,10 +116,10 @@
116
116
  {
117
117
  "captures": {
118
118
  "3": {
119
- "name": "punctuation.definition.inserted.diff"
119
+ "name": "punctuation.definition.deleted.diff"
120
120
  },
121
121
  "6": {
122
- "name": "punctuation.definition.inserted.diff"
122
+ "name": "punctuation.definition.deleted.diff"
123
123
  }
124
124
  },
125
125
  "match": "^(((<)( .*)?)|((-).*))$\\n?",
@@ -115,7 +115,7 @@
115
115
  ]
116
116
  },
117
117
  {
118
- "begin": "^\\s*(def)\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?))((\\()|\\s*)",
118
+ "begin": "^\\s*(def|defmacro)\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?))((\\()|\\s*)",
119
119
  "beginCaptures": {
120
120
  "1": {
121
121
  "name": "keyword.control.module.elixir"
@@ -127,7 +127,7 @@
127
127
  "name": "punctuation.definition.parameters.elixir"
128
128
  }
129
129
  },
130
- "end": "(\\bdo:)|(\\bdo\\b)|$",
130
+ "end": "(\\bdo:)|(\\bdo\\b)",
131
131
  "endCaptures": {
132
132
  "1": {
133
133
  "name": "constant.other.keywords.elixir"
@@ -172,6 +172,10 @@
172
172
  }
173
173
  ]
174
174
  },
175
+ {
176
+ "match": "\\b(is_atom|is_binary|is_bitstring|is_boolean|is_float|is_function|is_integer|is_list|is_map|is_nil|is_number|is_pid|is_port|is_record|is_reference|is_tuple|is_exception|abs|bit_size|byte_size|div|elem|hd|length|map_size|node|rem|round|tl|trunc|tuple_size)\\b",
177
+ "name": "keyword.control.elixir"
178
+ },
175
179
  {
176
180
  "match": "\\b[a-z_]\\w*\\b",
177
181
  "name": "variable.parameter.function.public.elixir"
@@ -179,7 +183,7 @@
179
183
  ]
180
184
  },
181
185
  {
182
- "begin": "^\\s*(defp)\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?))((\\()|\\s*)",
186
+ "begin": "^\\s*(defp|defmacrop)\\s+((?>[a-zA-Z_]\\w*(?>\\.|::))?(?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?))((\\()|\\s*)",
183
187
  "beginCaptures": {
184
188
  "1": {
185
189
  "name": "keyword.control.module.elixir"
@@ -191,7 +195,7 @@
191
195
  "name": "punctuation.definition.parameters.elixir"
192
196
  }
193
197
  },
194
- "end": "(\\bdo:)|(\\bdo\\b)|$",
198
+ "end": "(\\bdo:)|(\\bdo\\b)",
195
199
  "endCaptures": {
196
200
  "1": {
197
201
  "name": "constant.other.keywords.elixir"
@@ -236,6 +240,10 @@
236
240
  }
237
241
  ]
238
242
  },
243
+ {
244
+ "match": "\\b(is_atom|is_binary|is_bitstring|is_boolean|is_float|is_function|is_integer|is_list|is_map|is_nil|is_number|is_pid|is_port|is_record|is_reference|is_tuple|is_exception|abs|bit_size|byte_size|div|elem|hd|length|map_size|node|rem|round|tl|trunc|tuple_size)\\b",
245
+ "name": "keyword.control.elixir"
246
+ },
239
247
  {
240
248
  "match": "\\b[a-z_]\\w*\\b",
241
249
  "name": "variable.parameter.function.private.elixir"
@@ -14,6 +14,7 @@
14
14
  "jspre",
15
15
  "pac",
16
16
  "pjs",
17
+ "sjs",
17
18
  "xsjs",
18
19
  "xsjslib"
19
20
  ],
@@ -1762,7 +1763,7 @@
1762
1763
  "name": "other.meta.jsdoc"
1763
1764
  },
1764
1765
  {
1765
- "match": "(?x)\n(?:(?<=@param)|(?<=@arg)|(?<=@argument)|(?<=@type))\n\\s+\n({(?:\n \\* | # {*} any type\n \\? | # {?} unknown type\n\n (?:\n (?: # Check for a prefix\n \\? | # {?string} nullable type\n ! | # {!string} non-nullable type\n \\.{3} # {...string} variable number of parameters\n [*?]? # {...*} Variable number of mixed types\n )?\n\n (?:\n (?:\n function # {function(string, number)} function type\n \\s*\n (?:\n (?:\n \\(\\s*\n \\.{3}[a-zA-Z_$][\\w$]+ # {function(...string)} variable number of parameters\n \\s*\\)\n )\n |\n (?:\n \\(\\s*\n (?:\n (?:\\?|!)? # {function(?string)} or function(!string)} nullable/non-nullable type\n [a-zA-Z_$][\\w$]+\n (?:\\[\\])? # {function(string[])} type application, an array of strings\n (?:\n (?:\n (?:\n \\s*,\\s*\n (?:\\?|!)? # {function(?string)} or function(!string)} nullable/non-nullable type\n [a-zA-Z_$][\\w$]+\n (?:\\[\\])? # {function(string[])} type application, an array of strings\n )*\n (?:\n \\s*,\\s*\n \\.{3}[a-zA-Z_$][\\w$]+ # {function(string, ...string)} variable number of parameters\n )?\n )\n |\n (?:\n =? # {function(string=)} optional parameter\n (?:\n (?<!=) # {function(string, string, number)} loop non-optional params\n \\s*,\\s*\n (?:\\?|!)? # {function(?string)} or function(!string)} nullable/non-nullable type\n [a-zA-Z_$][\\w$]+\n (?:\\[\\])? # {function(string[])} type application, an array of strings\n =?\n )*\n (?:\n (?<==) # {function(string, string=, number=)} loop optional params\n \\s*,\\s*\n (?:\\?|!)? # {function(?string)} or function(!string)} nullable/non-nullable type\n [a-zA-Z_$][\\w$]+\n (?:\\[\\])? # {function(string[])} type application, an array of strings\n =\n )*\n )\n )\n )?\n \\s*\\)\n )\n )\n (?: # {function(): string} function return type\n \\s*:\\s*\n [a-zA-Z_$][\\w$]*\n )?\n )?\n |\n (?:\n \\( # Opening bracket of multiple types with parenthesis {(string|number)}\n [a-zA-Z_$]+\n (?:\n (?:\n [\\w$]*\n (?:\\[\\])? # {(string[]|number)} type application, an array of strings or a number\n ) |\n \\.?<[\\w$]+(?:,\\s+[\\w$]+)*> # {Array<string>} or {Object<string, number>} type application (optional .)\n )\n (?:\n [\\.|~] # {Foo.bar} namespaced, {string|number} multiple, {Foo~bar} class-specific callback\n [a-zA-Z_$]+\n (?:\n (?:\n [\\w$]*\n (?:\\[\\])? # {(string|number[])} type application, a string or an array of numbers\n ) |\n \\.?<[\\w$]+(?:,\\s+[\\w$]+)*> # {Array<string>} or {Object<string, number>} type application (optional .)\n )\n )*\n \\) |\n [a-zA-Z_$]+\n (?:\n (?:\n [\\w$]*\n (?:\\[\\])? # {(string|number[])} type application, a string or an array of numbers\n ) |\n \\.?<[\\w$]+(?:,\\s+[\\w$]+)*> # {Array<string>} or {Object<string, number>} type application (optional .)\n )\n (?:\n [\\.|~] # {Foo.bar} namespaced, {string|number} multiple, {Foo~bar} class-specific callback\n [a-zA-Z_$]+\n (?:\n [\\w$]* |\n \\.?<[\\w$]+(?:,\\s+[\\w$]+)*> # {Array<string>} or {Object<string, number>} type application (optional .)\n )\n )*\n )\n )\n # Check for suffix\n (?:\\[\\])? # {string[]} type application, an array of strings\n =? # {string=} optional parameter\n )\n)})\n\\s+\n(\n \\[ # [foo] optional parameter\n \\s*\n (?:\n [a-zA-Z_$][\\w$]*\n (?:\n (?:\\[\\])? # Foo[].bar properties within an array\n \\. # Foo.Bar namespaced parameter\n [a-zA-Z_$][\\w$]*\n )*\n (?:\n \\s*\n = # [foo=bar] Default parameter value\n \\s*\n (?:\n [\\w$\\s]* | # [foo=bar] Unquoted\n \"[^\"]*\" | # [foo=\"bar\"] Double-quoted\n '[^']*' | # [foo='bar'] Single-quoted\n {[^{}]*} | # [foo={a:1}] Object literal\n \\[ [^\\[\\]]* \\] # [foo=[1,2]] Array literal\n )\n )?\n )\n \\s*\n \\] |\n (?:\n [a-zA-Z_$][\\w$]*\n (?:\n (?:\\[\\])? # Foo[].bar properties within an array\n \\. # Foo.Bar namespaced parameter\n [a-zA-Z_$][\\w$]*\n )*\n )?\n)\n\\s+\n(?:-\\s+)? # optional hyphen before the description\n((?:(?!\\*\\/).)*) # The type description",
1766
+ "match": "(?x)\n(?:(?<=@param)|(?<=@arg)|(?<=@argument)|(?<=@type))\n\\s+\n({(?:\n \\* | # {*} any type\n \\? | # {?} unknown type\n\n (?:\n (?: # Check for a prefix\n \\? | # {?string} nullable type\n ! | # {!string} non-nullable type\n \\.{3} # {...string} variable number of parameters\n [*?]? # {...*} Variable number of mixed types\n )?\n\n (?:\n (?:\n function # {function(string, number)} function type\n \\s*\n (?:\n (?:\n \\(\\s*\n \\.{3}[a-zA-Z_$][\\w$]+ # {function(...string)} variable number of parameters\n \\s*\\)\n )\n |\n (?:\n \\(\\s*\n (?:\n (?:\\?|!)? # {function(?string)} or function(!string)} nullable/non-nullable type\n [a-zA-Z_$][\\w$]+\n (?:\\[\\])? # {function(string[])} type application, an array of strings\n (?:\n (?:\n (?:\n \\s*,\\s*\n (?:\\?|!)? # {function(?string)} or function(!string)} nullable/non-nullable type\n [a-zA-Z_$][\\w$]+\n (?:\\[\\])? # {function(string[])} type application, an array of strings\n )*\n (?:\n \\s*,\\s*\n \\.{3}[a-zA-Z_$][\\w$]+ # {function(string, ...string)} variable number of parameters\n )?\n )\n |\n (?:\n =? # {function(string=)} optional parameter\n (?:\n (?<!=) # {function(string, string, number)} loop non-optional params\n \\s*,\\s*\n (?:\\?|!)? # {function(?string)} or function(!string)} nullable/non-nullable type\n [a-zA-Z_$][\\w$]+\n (?:\\[\\])? # {function(string[])} type application, an array of strings\n =?\n )*\n (?:\n (?<==) # {function(string, string=, number=)} loop optional params\n \\s*,\\s*\n (?:\\?|!)? # {function(?string)} or function(!string)} nullable/non-nullable type\n [a-zA-Z_$][\\w$]+\n (?:\\[\\])? # {function(string[])} type application, an array of strings\n =\n )*\n )\n )\n )?\n \\s*\\)\n )\n )\n (?: # {function(): string} function return type\n \\s*:\\s*\n [a-zA-Z_$][\\w$]*\n )?\n )?\n |\n (?:\n \\( # Opening bracket of multiple types with parenthesis {(string|number)}\n [a-zA-Z_$]+\n (?:\n (?:\n [\\w$]*\n (?:\\[\\])? # {(string[]|number)} type application, an array of strings or a number\n ) |\n \\.?<[\\w$]+(?:,\\s+[\\w$]+)*> # {Array<string>} or {Object<string, number>} type application (optional .)\n )\n (?:\n [\\.|~] # {Foo.bar} namespaced, {string|number} multiple, {Foo~bar} class-specific callback\n [a-zA-Z_$]+\n (?:\n (?:\n [\\w$]*\n (?:\\[\\])? # {(string|number[])} type application, a string or an array of numbers\n ) |\n \\.?<[\\w$]+(?:,\\s+[\\w$]+)*> # {Array<string>} or {Object<string, number>} type application (optional .)\n )\n )*\n \\) |\n [a-zA-Z_$]+\n (?:\n (?:\n [\\w$]*\n (?:\\[\\])? # {(string|number[])} type application, a string or an array of numbers\n ) |\n \\.?<[\\w$]+(?:,\\s+[\\w$]+)*> # {Array<string>} or {Object<string, number>} type application (optional .)\n )\n (?:\n [\\.|~] # {Foo.bar} namespaced, {string|number} multiple, {Foo~bar} class-specific callback\n [a-zA-Z_$]+\n (?:\n [\\w$]* |\n \\.?<[\\w$]+(?:,\\s+[\\w$]+)*> # {Array<string>} or {Object<string, number>} type application (optional .)\n )\n )*\n )\n )\n # Check for suffix\n (?:\\[\\])? # {string[]} type application, an array of strings\n =? # {string=} optional parameter\n )\n)})\n\\s+\n(\n \\[ # [foo] optional parameter\n \\s*\n (?:\n [a-zA-Z_$][\\w$]*\n (?:\n (?:\\[\\])? # Foo[].bar properties within an array\n \\. # Foo.Bar namespaced parameter\n [a-zA-Z_$][\\w$]*\n )*\n (?:\n \\s*\n = # [foo=bar] Default parameter value\n \\s*\n (?:\n [\\w$.\\s]* | # [foo=bar] Unquoted\n \"[^\"]*\" | # [foo=\"bar\"] Double-quoted\n '[^']*' | # [foo='bar'] Single-quoted\n {[^{}]*} | # [foo={a:1}] Object literal\n \\[ [^\\[\\]]* \\] # [foo=[1,2]] Array literal\n )\n )?\n )\n \\s*\n \\] |\n (?:\n [a-zA-Z_$][\\w$]*\n (?:\n (?:\\[\\])? # Foo[].bar properties within an array\n \\. # Foo.Bar namespaced parameter\n [a-zA-Z_$][\\w$]*\n )*\n )?\n)\n\\s+\n(?:-\\s+)? # optional hyphen before the description\n((?:(?!\\*\\/).)*) # The type description",
1766
1767
  "captures": {
1767
1768
  "0": {
1768
1769
  "name": "other.meta.jsdoc"
@@ -5,7 +5,7 @@
5
5
  "pm6",
6
6
  "nqp"
7
7
  ],
8
- "firstLineMatch": "(^#!.*\\b(perl6|nqp)\\b)|use\\s+v6",
8
+ "firstLineMatch": "(?x)\n# Hashbang\n^\\#!.*(?:\\s|\\/|(?<=!)\\b)(?:perl6|nqp)(?:$|\\s)\n|\n# Perl 6 pragma\n\\buse\\s+v6\\b\n|\n# Modeline\n(?i:\n # Emacs\n -\\*-(?:(?:(?!mode\\s*:)[^:;]+:[^:;]+;)*\\s*mode\\s*:)?\\s*\n\tperl6\n \\s*(?:;[^:;]+:[^:;]+?)*;?\\s*-\\*-\n |\n # Vim\n (?:(?:\\s|^)vi(?:m[<=>]?\\d+|m)?|(?!^)\\sex)(?=:(?=\\s*set?\\s[^\\n:]+:)|:(?!\\s*set?\\s))(?:(?:\\s|\\s*:\\s*)\\w*(?:\\s*=(?:[^\\n\\\\\\s]|\\\\.)*)?)*[\\s:](?:filetype|ft|syntax)\\s*=\n\tperl6\n (?=\\s|:|$)\n)",
9
9
  "keyEquivalent": "^~P",
10
10
  "name": "Perl 6",
11
11
  "patterns": [
@@ -9,7 +9,7 @@
9
9
  "psgi",
10
10
  "vcl"
11
11
  ],
12
- "firstLineMatch": "^#!.*\\bperl\\b",
12
+ "firstLineMatch": "(?x)\n# Hashbang\n^\\#!.*(?:\\s|\\/|(?<=!)\\b)perl(?:$|\\s)\n|\n# Modeline\n(?i:\n # Emacs\n -\\*-(?:(?:(?!mode\\s*:)[^:;]+:[^:;]+;)*\\s*mode\\s*:)?\\s*\n\tperl\n \\s*(?:;[^:;]+:[^:;]+?)*;?\\s*-\\*-\n |\n # Vim\n (?:(?:\\s|^)vi(?:m[<=>]?\\d+|m)?|(?!^)\\sex)(?=:(?=\\s*set?\\s[^\\n:]+:)|:(?!\\s*set?\\s))(?:(?:\\s|\\s*:\\s*)\\w*(?:\\s*=(?:[^\\n\\\\\\s]|\\\\.)*)?)*[\\s:](?:filetype|ft|syntax)\\s*=\n\tperl\n (?=\\s|:|$)\n)",
13
13
  "keyEquivalent": "^~P",
14
14
  "name": "Perl",
15
15
  "patterns": [
@@ -17,14 +17,23 @@
17
17
  "include": "#line_comment"
18
18
  },
19
19
  {
20
- "begin": "^=",
21
- "captures": {
22
- "0": {
23
- "name": "punctuation.definition.comment.perl"
20
+ "begin": "^(?==[a-zA-Z]+)",
21
+ "end": "^(=cut\\b.*$)",
22
+ "endCaptures": {
23
+ "1": {
24
+ "patterns": [
25
+ {
26
+ "include": "#pod"
27
+ }
28
+ ]
24
29
  }
25
30
  },
26
- "end": "^=cut",
27
- "name": "comment.block.documentation.perl"
31
+ "name": "comment.block.documentation.perl",
32
+ "patterns": [
33
+ {
34
+ "include": "#pod"
35
+ }
36
+ ]
28
37
  },
29
38
  {
30
39
  "include": "#variable"
@@ -33,7 +42,7 @@
33
42
  "applyEndPatternLast": 1,
34
43
  "begin": "\\b(?=qr\\s*[^\\s\\w])",
35
44
  "comment": "string.regexp.compile.perl",
36
- "end": "((([egimosxradlupc]*)))(?=(\\s+\\S|\\s*[;\\,\\#\\{\\}\\)]|$))",
45
+ "end": "((([egimosxradlupcn]*)))(?=(\\s+\\S|\\s*[;\\,\\#\\{\\}\\)]|\\s*$))",
37
46
  "endCaptures": {
38
47
  "1": {
39
48
  "name": "string.regexp.compile.perl"
@@ -199,7 +208,7 @@
199
208
  "applyEndPatternLast": 1,
200
209
  "begin": "(?<!\\{|\\+|\\-)\\b(?=m\\s*[^\\sa-zA-Z0-9])",
201
210
  "comment": "string.regexp.find-m.perl",
202
- "end": "((([egimosxradlupc]*)))(?=(\\s+\\S|\\s*[;\\,\\#\\{\\}\\)]|$))",
211
+ "end": "((([egimosxradlupcn]*)))(?=(\\s+\\S|\\s*[;\\,\\#\\{\\}\\)]|\\s*$))",
203
212
  "endCaptures": {
204
213
  "1": {
205
214
  "name": "string.regexp.find-m.perl"
@@ -384,9 +393,9 @@
384
393
  },
385
394
  {
386
395
  "applyEndPatternLast": 1,
387
- "begin": "\\b(?=(?<!\\&)(s)(\\s+\\S|\\s*[;\\,\\#\\{\\}\\(\\)\\[<]|$))",
396
+ "begin": "\\b(?=(?<!\\&)(s)(\\s+\\S|\\s*[;\\,\\{\\}\\(\\)\\[<]|$))",
388
397
  "comment": "string.regexp.replace.perl",
389
- "end": "((([egimosxradlupc]*)))(?=(\\s+\\S|\\s*[;\\,\\#\\{\\}\\)\\]>]|$))",
398
+ "end": "((([egimosxradlupcn]*)))(?=(\\s+\\S|\\s*[;\\,\\{\\}\\)\\]>]|\\s*$))",
390
399
  "endCaptures": {
391
400
  "1": {
392
401
  "name": "string.regexp.replace.perl"
@@ -607,9 +616,9 @@
607
616
  ]
608
617
  },
609
618
  {
610
- "begin": "\\b(?=s([^\\sa-zA-Z0-9\\[({<]).*\\1([egimosxradlupc]*)([\\}\\)\\;\\,]|\\s+))",
619
+ "begin": "\\b(?=s([^\\sa-zA-Z0-9\\[({<]).*\\1([egimosxradlupcn]*)([\\}\\)\\;\\,]|\\s+))",
611
620
  "comment": "string.regexp.replaceXXX",
612
- "end": "((([egimosxradlupc]*)))(?=([\\}\\)\\;\\,]|\\s+|$))",
621
+ "end": "((([egimosxradlupcn]*)))(?=([\\}\\)\\;\\,]|\\s+|\\s*$))",
613
622
  "endCaptures": {
614
623
  "1": {
615
624
  "name": "string.regexp.replace.perl"
@@ -746,7 +755,7 @@
746
755
  ]
747
756
  },
748
757
  {
749
- "begin": "(?<=\\(|\\{|~|&)\\s*((\\/))",
758
+ "begin": "(?<=\\(|\\{|~|&|\\||if|unless|^)\\s*((\\/))",
750
759
  "beginCaptures": {
751
760
  "1": {
752
761
  "name": "string.regexp.find.perl"
@@ -756,7 +765,7 @@
756
765
  }
757
766
  },
758
767
  "contentName": "string.regexp.find.perl",
759
- "end": "((\\1([egimosxradlupc]*)))(?=(\\s+\\S|\\s*[;\\,\\#\\{\\}\\)]|$))",
768
+ "end": "((\\1([egimosxradlupcn]*)))(?=(\\s+\\S|\\s*[;\\,\\#\\{\\}\\)]|\\s*$))",
760
769
  "endCaptures": {
761
770
  "1": {
762
771
  "name": "string.regexp.find.perl"
@@ -883,11 +892,16 @@
883
892
  "name": "constant.language.perl"
884
893
  }
885
894
  },
886
- "contentName": "text.plain",
887
- "end": "\\z"
895
+ "contentName": "comment.block.documentation.perl",
896
+ "end": "\\z",
897
+ "patterns": [
898
+ {
899
+ "include": "#pod"
900
+ }
901
+ ]
888
902
  },
889
903
  {
890
- "match": "(?<!->)\\b(continue|die|do|else|elsif|exit|for|foreach|goto|if|last|next|redo|return|select|unless|until|wait|while|switch|case|require|use|eval)\\b",
904
+ "match": "(?<!->)\\b(continue|default|die|do|else|elsif|exit|for|foreach|given|goto|if|last|next|redo|return|select|unless|until|wait|when|while|switch|case|require|use|eval)\\b",
891
905
  "name": "keyword.control.perl"
892
906
  },
893
907
  {
@@ -895,7 +909,7 @@
895
909
  "name": "storage.modifier.perl"
896
910
  },
897
911
  {
898
- "match": "(?<!\\w)\\-[rwx0RWXOezsfdlpSbctugkTBMAC]\\b",
912
+ "match": "(?<!\\w)\\-[rwxoRWXOezsfdlpSbctugkTBMAC]\\b",
899
913
  "name": "keyword.operator.filetest.perl"
900
914
  },
901
915
  {
@@ -2071,7 +2085,7 @@
2071
2085
  "match": "\\b(x)\\s*(\\d+)\\b"
2072
2086
  },
2073
2087
  {
2074
- "match": "\\b(ARGV|DATA|ENV|SIG|STDERR|STDIN|STDOUT|atan2|bind|binmode|bless|caller|chdir|chmod|chomp|chop|chown|chr|chroot|close|closedir|cmp|connect|cos|crypt|dbmclose|dbmopen|defined|delete|dump|each|endgrent|endhostent|endnetent|endprotoent|endpwent|endservent|eof|eq|eval|exec|exists|exp|fcntl|fileno|flock|fork|formline|ge|getc|getgrent|getgrgid|getgrnam|gethostbyaddr|gethostbyname|gethostent|getlogin|getnetbyaddr|getnetbyname|getnetent|getpeername|getpgrp|getppid|getpriority|getprotobyname|getprotobynumber|getprotoent|getpwent|getpwnam|getpwuid|getservbyname|getservbyport|getservent|getsockname|getsockopt|glob|gmtime|grep|gt|hex|import|index|int|ioctl|join|keys|kill|lc|lcfirst|le|length|link|listen|local|localtime|log|lstat|lt|m|map|mkdir|msgctl|msgget|msgrcv|msgsnd|ne|no|oct|open|opendir|ord|pack|pipe|pop|pos|print|printf|push|quotemeta|rand|read|readdir|readlink|recv|ref|rename|reset|reverse|rewinddir|rindex|rmdir|s|scalar|seek|seekdir|semctl|semget|semop|send|setgrent|sethostent|setnetent|setpgrp|setpriority|setprotoent|setpwent|setservent|setsockopt|shift|shmctl|shmget|shmread|shmwrite|shutdown|sin|sleep|socket|socketpair|sort|splice|split|sprintf|sqrt|srand|stat|study|substr|symlink|syscall|sysopen|sysread|system|syswrite|tell|telldir|tie|tied|time|times|tr|truncate|uc|ucfirst|umask|undef|unlink|unpack|unshift|untie|utime|values|vec|waitpid|wantarray|warn|write|y)\\b",
2088
+ "match": "\\b(ARGV|DATA|ENV|SIG|STDERR|STDIN|STDOUT|atan2|bind|binmode|bless|caller|chdir|chmod|chomp|chop|chown|chr|chroot|close|closedir|cmp|connect|cos|crypt|dbmclose|dbmopen|defined|delete|dump|each|endgrent|endhostent|endnetent|endprotoent|endpwent|endservent|eof|eq|eval|exec|exists|exp|fcntl|fileno|flock|fork|formline|ge|getc|getgrent|getgrgid|getgrnam|gethostbyaddr|gethostbyname|gethostent|getlogin|getnetbyaddr|getnetbyname|getnetent|getpeername|getpgrp|getppid|getpriority|getprotobyname|getprotobynumber|getprotoent|getpwent|getpwnam|getpwuid|getservbyname|getservbyport|getservent|getsockname|getsockopt|glob|gmtime|grep|gt|hex|import|index|int|ioctl|join|keys|kill|lc|lcfirst|le|length|link|listen|local|localtime|log|lstat|lt|m|map|mkdir|msgctl|msgget|msgrcv|msgsnd|ne|no|oct|open|opendir|ord|pack|pipe|pop|pos|print|printf|push|quotemeta|rand|read|readdir|readlink|recv|ref|rename|reset|reverse|rewinddir|rindex|rmdir|s|say|scalar|seek|seekdir|semctl|semget|semop|send|setgrent|sethostent|setnetent|setpgrp|setpriority|setprotoent|setpwent|setservent|setsockopt|shift|shmctl|shmget|shmread|shmwrite|shutdown|sin|sleep|socket|socketpair|sort|splice|split|sprintf|sqrt|srand|stat|study|substr|symlink|syscall|sysopen|sysread|system|syswrite|tell|telldir|tie|tied|time|times|tr|truncate|uc|ucfirst|umask|undef|unlink|unpack|unshift|untie|utime|values|vec|waitpid|wantarray|warn|write|y)\\b",
2075
2089
  "name": "support.function.perl"
2076
2090
  },
2077
2091
  {
@@ -2312,6 +2326,113 @@
2312
2326
  }
2313
2327
  ]
2314
2328
  },
2329
+ "pod": {
2330
+ "patterns": [
2331
+ {
2332
+ "match": "^=(pod|back|cut)\\b",
2333
+ "name": "storage.type.class.pod.perl"
2334
+ },
2335
+ {
2336
+ "begin": "^(=begin)\\s+(html)\\s*$",
2337
+ "beginCaptures": {
2338
+ "1": {
2339
+ "name": "storage.type.class.pod.perl"
2340
+ },
2341
+ "2": {
2342
+ "name": "variable.other.pod.perl"
2343
+ }
2344
+ },
2345
+ "contentName": "text.embedded.html.basic",
2346
+ "end": "^(=end)\\s+(html)|^(?==cut)",
2347
+ "endCaptures": {
2348
+ "1": {
2349
+ "name": "storage.type.class.pod.perl"
2350
+ },
2351
+ "2": {
2352
+ "name": "variable.other.pod.perl"
2353
+ }
2354
+ },
2355
+ "name": "meta.embedded.pod.perl",
2356
+ "patterns": [
2357
+ {
2358
+ "include": "text.html.basic"
2359
+ }
2360
+ ]
2361
+ },
2362
+ {
2363
+ "captures": {
2364
+ "1": {
2365
+ "name": "storage.type.class.pod.perl"
2366
+ },
2367
+ "2": {
2368
+ "name": "variable.other.pod.perl",
2369
+ "patterns": [
2370
+ {
2371
+ "include": "#pod-formatting"
2372
+ }
2373
+ ]
2374
+ }
2375
+ },
2376
+ "match": "^(=(?:head[1-4]|item|over|encoding|begin|end|for))\\b\\s*(.*)"
2377
+ },
2378
+ {
2379
+ "include": "#pod-formatting"
2380
+ }
2381
+ ]
2382
+ },
2383
+ "pod-formatting": {
2384
+ "patterns": [
2385
+ {
2386
+ "captures": {
2387
+ "1": {
2388
+ "name": "markup.italic.pod.perl"
2389
+ },
2390
+ "2": {
2391
+ "name": "markup.italic.pod.perl"
2392
+ }
2393
+ },
2394
+ "match": "I(?:<([^<>]+)>|<+(\\s+(?:(?<!\\s)>|[^>])+\\s+)>+)",
2395
+ "name": "entity.name.type.instance.pod.perl"
2396
+ },
2397
+ {
2398
+ "captures": {
2399
+ "1": {
2400
+ "name": "markup.bold.pod.perl"
2401
+ },
2402
+ "2": {
2403
+ "name": "markup.bold.pod.perl"
2404
+ }
2405
+ },
2406
+ "match": "B(?:<([^<>]+)>|<+(\\s+(?:(?<!\\s)>|[^>])+\\s+)>+)",
2407
+ "name": "entity.name.type.instance.pod.perl"
2408
+ },
2409
+ {
2410
+ "captures": {
2411
+ "1": {
2412
+ "name": "markup.raw.pod.perl"
2413
+ },
2414
+ "2": {
2415
+ "name": "markup.raw.pod.perl"
2416
+ }
2417
+ },
2418
+ "match": "C(?:<([^<>]+)>|<+(\\\\s+(?:(?<!\\\\s)>|[^>])+\\\\s+)>+)",
2419
+ "name": "entity.name.type.instance.pod.perl"
2420
+ },
2421
+ {
2422
+ "captures": {
2423
+ "1": {
2424
+ "name": "markup.underline.link.hyperlink.pod.perl"
2425
+ }
2426
+ },
2427
+ "match": "L<([^>]+)>",
2428
+ "name": "entity.name.type.instance.pod.perl"
2429
+ },
2430
+ {
2431
+ "match": "[EFSXZ]<[^>]*>",
2432
+ "name": "entity.name.type.instance.pod.perl"
2433
+ }
2434
+ ]
2435
+ },
2315
2436
  "variable": {
2316
2437
  "patterns": [
2317
2438
  {
@@ -457,7 +457,7 @@
457
457
  "include": "#p5_regex"
458
458
  },
459
459
  {
460
- "match": "(?x)\n(?<=\n ^\n | ^\\s\n | [\\s\\(] [^\\p{Nd}\\p{L}]\n)\n([/]) # Solidus\n(.*?) # Regex contents\n(?: (?<!\\\\)|(?<=\\\\\\\\) ) (/) # Ending",
460
+ "match": "(?x)\n(?<=\n ^\n | ^\\s\n | [\\s\\(] [^\\p{Nd}\\p{L}]\n | ~~\\s|~~\\s\\s|match\\(\n)\n([/]) # Solidus\n(.*?) # Regex contents\n(?: (?<!\\\\)|(?<=\\\\\\\\) ) (/) # Ending",
461
461
  "captures": {
462
462
  "1": {
463
463
  "name": "punctuation.definition.regexp.perl6fe"
@@ -713,7 +713,7 @@
713
713
  "include": "#variables"
714
714
  },
715
715
  {
716
- "begin": "(?x) (?<![%$&@]|\\w) (?: (multi) \\s+ )? (macro|sub|submethod|method|multi|proto|only|category) \\s+ (!)? ( [^\\s\\(\\)\\{\\}]+ )",
716
+ "begin": "(?x) (?<![%$&@]|\\w) (?: (multi|proto) \\s+ )? (macro|sub|submethod|method|multi|only|category) \\s+ (!)? ( [^\\s(){}]+ )",
717
717
  "beginCaptures": {
718
718
  "1": {
719
719
  "name": "storage.type.declarator.multi.perl6fe"
@@ -1002,7 +1002,7 @@
1002
1002
  "name": "constant.language.whatever.hack.perl6fe"
1003
1003
  },
1004
1004
  {
1005
- "match": "(?x)\\b(?<![\\-:\\\\])( :: )?( eager|hyper|substr|index|rindex|grep|map|sort|join|lines|hints |chmod|split|reduce|min|max|reverse|truncate|zip|cat|roundrobin |classify|first|sum|keys|values|pairs|defined|delete|exists |elems|end|kv|any|all|one|wrap|shape|key|value|name|pop|push |shift|splice|unshift|floor|ceiling|abs|exp|log|log10|rand|sign |sqrt|sin|cos|tan|round|strand|roots|cis|unpolar|polar|atan2 |pick|chop|chomp|lc|lcfirst|uc|ucfirst|capitalize|mkdir |normalize|pack|unpack|quotemeta|comb|samecase|sameaccent|chars |nfd|nfc|nfkd|nfkc|printf|sprintf|caller|evalfile|run|runinstead |nothing|want|bless|chr|ord|ords|gmtime|time|eof|localtime|gethost |getpw|chroot|getlogin|getpeername|kill|fork|wait|perl|graphs |codes|bytes|clone|print|open|read|write|readline|say|seek|close |opendir|readdir|slurp|spurt|shell|run|pos|fmt|vec|link|unlink |symlink|unique|pair|asin|atan|sec|cosec|cotan|asec|acosec|acotan |sinh|cosh|tanh|asinh|done|acos|acosh|atanh|sech|cosech|cotanh |sech|acosech|acotanh|asech|ok|nok|plan-ok|dies-ok|lives-ok|skip |todo|pass|flunk|force-todo|use-ok|isa-ok|diag|is-deeply|isnt |like|skip-rest|unlike|cmp-ok|eval-dies-ok|nok-error|cmp-ok |eval-lives-ok|approx|is-approx|throws-ok|version-lt|plan|EVAL |succ|pred|times|nonce|once|signature|new|connect|operator|undef |undefine|sleep|from|to|infix|postfix|prefix|circumfix|can-ok |postcircumfix|minmax|lazy|count|unwrap|getc|pi|tau|context|void |quasi|body|each|contains|rewinddir|subst|can|isa|flush|arity |assuming|rewind|callwith|callsame|nextwith|nextsame|attr|does-ok |eval-elsewhere|none|not|srand|so|trim|trim-start|trim-end|lastcall |WHAT|WHY|WHERE|HOW|WHICH|VAR|WHO|WHENCE|ACCEPTS|REJECTS|not |iterator|by|re|im|invert|flip|gist|flat|tree|is-prime |throws-like|trans|race|hyper|tap|emit|done-testing|quit|dd|note |prepend|categorize|antipairs|categorize-list|parse-base|base |starts-with|ends-with|put|append|tail|\\x{03C0}|\\x{03C4}|\\x{212F} |get|words|new-from-pairs|uniname|uninames|uniprop|uniprops |slurp-rest|throw|break|keep )(?!\\-)\\b(?!\\s*=>)",
1005
+ "match": "(?x)\\b(?<![\\-:\\\\])( :: )?( eager|hyper|substr|index|rindex|grep|map|sort|join|lines|hints |chmod|split|reduce|min|max|reverse|truncate|zip|cat|roundrobin |classify|first|sum|keys|values|pairs|defined|delete|exists |elems|end|kv|any|all|one|wrap|shape|key|value|name|pop|push |shift|splice|unshift|floor|ceiling|abs|exp|log|log10|rand|sign |sqrt|sin|cos|tan|round|strand|roots|cis|unpolar|polar|atan2 |pick|chop|chomp|lc|lcfirst|uc|ucfirst|capitalize|mkdir |normalize|pack|unpack|quotemeta|comb|samecase|sameaccent|chars |nfd|nfc|nfkd|nfkc|printf|sprintf|caller|evalfile|run|runinstead |nothing|want|bless|chr|ord|ords|gmtime|time|eof|localtime|gethost |getpw|chroot|getlogin|getpeername|kill|fork|wait|perl|graphs |codes|bytes|clone|print|open|read|write|readline|say|seek|close |opendir|readdir|slurp|spurt|shell|run|pos|fmt|vec|link|unlink |symlink|unique|pair|asin|atan|sec|cosec|cotan|asec|acosec|acotan |sinh|cosh|tanh|asinh|done|acos|acosh|atanh|sech|cosech|cotanh |sech|acosech|acotanh|asech|ok|nok|plan-ok|dies-ok|lives-ok|skip |todo|pass|flunk|force-todo|use-ok|isa-ok|diag|is-deeply|isnt |like|skip-rest|unlike|cmp-ok|eval-dies-ok|nok-error|cmp-ok |eval-lives-ok|approx|is-approx|throws-ok|version-lt|plan|EVAL |succ|pred|times|nonce|once|signature|new|connect|operator|undef |undefine|sleep|from|to|infix|postfix|prefix|circumfix|can-ok |postcircumfix|minmax|lazy|count|unwrap|getc|pi|tau|context|void |quasi|body|each|contains|rewinddir|subst|can|isa|flush|arity |assuming|rewind|callwith|callsame|nextwith|nextsame|attr|does-ok |eval-elsewhere|none|not|srand|so|trim|trim-start|trim-end|lastcall |WHAT|WHY|WHERE|HOW|WHICH|VAR|WHO|WHENCE|ACCEPTS|REJECTS|not |iterator|by|re|im|invert|flip|gist|flat|tree|is-prime |throws-like|trans|race|hyper|tap|emit|done-testing|quit|dd|note |prepend|categorize|antipairs|categorize-list|parse-base|base |starts-with|ends-with|put|append|tail|\\x{03C0}|\\x{03C4}|\\x{212F} |get|words|new-from-pairs|uniname|uninames|uniprop|uniprops |slurp-rest|throw|break|keep|match )(?!\\-)\\b(?!\\s*=>)",
1006
1006
  "captures": {
1007
1007
  "1": {
1008
1008
  "name": "keyword.operator.colon.perl6fe"
@@ -31,13 +31,19 @@
31
31
  "name": "punctuation.definition.directives.end.yaml"
32
32
  },
33
33
  {
34
- "begin": "^(\\s*)(?!-\\s*)(\\S+)\\s*(:)\\s*(?=\\||>)",
34
+ "begin": "^(\\s*)(?!-\\s*)(\\S+)\\s*(:)(?:\\s+((!)[^!\\s]+))?\\s+(?=\\||>)",
35
35
  "beginCaptures": {
36
36
  "2": {
37
37
  "name": "entity.name.tag.yaml"
38
38
  },
39
39
  "3": {
40
40
  "name": "punctuation.separator.key-value.yaml"
41
+ },
42
+ "4": {
43
+ "name": "keyword.other.tag.local.yaml"
44
+ },
45
+ "5": {
46
+ "name": "punctuation.definition.tag.local.yaml"
41
47
  }
42
48
  },
43
49
  "end": "^(?!\\1\\s+)(?=\\s*(-|[^!@#%&*>,].*:|#))",
@@ -52,7 +58,7 @@
52
58
  ]
53
59
  },
54
60
  {
55
- "begin": "^(\\s*)(?:(-)|(?:(?:(-)\\s*)?(\\S+)\\s*(:)))\\s*(?=\\||>)",
61
+ "begin": "^(\\s*)(?:(-)|(?:(?:(-)\\s*)?(\\S+)\\s*(:)))(?:\\s+((!)[^!\\s]+))?\\s+(?=\\||>)",
56
62
  "beginCaptures": {
57
63
  "2": {
58
64
  "name": "punctuation.definition.entry.yaml"
@@ -65,6 +71,12 @@
65
71
  },
66
72
  "5": {
67
73
  "name": "punctuation.separator.key-value.yaml"
74
+ },
75
+ "6": {
76
+ "name": "keyword.other.tag.local.yaml"
77
+ },
78
+ "7": {
79
+ "name": "punctuation.definition.tag.local.yaml"
68
80
  }
69
81
  },
70
82
  "end": "^(?!\\1 \\4\\s+)(?=\\s*(-|[^!@#%&*>,].*:|#))",
@@ -170,7 +182,7 @@
170
182
  ]
171
183
  },
172
184
  {
173
- "begin": "(-)\\s+(?:((!!)omap)|(?![!@#%&*>,]))",
185
+ "begin": "(-)\\s+(?:((!!)omap)|((!)[^!\\s]+)|(?![!@#%&*>,]))",
174
186
  "beginCaptures": {
175
187
  "1": {
176
188
  "name": "punctuation.definition.entry.yaml"
@@ -180,6 +192,12 @@
180
192
  },
181
193
  "3": {
182
194
  "name": "punctuation.definition.tag.omap.yaml"
195
+ },
196
+ "4": {
197
+ "name": "keyword.other.tag.local.yaml"
198
+ },
199
+ "5": {
200
+ "name": "punctuation.definition.tag.local.yaml"
183
201
  }
184
202
  },
185
203
  "end": "(?=^\\s*(-|[^!{@#%&*>,].*:))",
@@ -7,10 +7,10 @@
7
7
  "uuid": "0e1a8891-7cc0-4991-8018-252d6f591f8f",
8
8
  "patterns": [
9
9
  {
10
- "comment": "=== Unparsed Compile Message ===",
10
+ "comment": "|> Unparsed Compile Message",
11
11
  "name": "comment.line.heading.3.elm-build-output",
12
- "begin": "^(={3}) ",
13
- "end": " \\1$",
12
+ "begin": "^(::) ",
13
+ "end": "^\\n$",
14
14
  "patterns": [
15
15
  {
16
16
  "comment": "elm-lang/core OR build\\index.html",
@@ -25,10 +25,10 @@
25
25
  ]
26
26
  },
27
27
  {
28
- "comment": "==== MediaWiki-Formatted ====\\nCompile Message\\n----",
28
+ "comment": "-- TAG - file:line:column\\nOverview\\nDetail\\n",
29
29
  "name": "meta.report.elm-build-output",
30
30
  "contentName": "string.unquoted.elm-build-output",
31
- "begin": "(?xi) # Minimally modified `file_regex` from `Elm Make.sublime-build`\n ^={4}[ ] # Leading delimiter\n ((error) # \\2: error\n |(warning) # \\3: warning\n |\\w+ # \\1: any $type\n )[ ]in[ ] # separator\n (.+?): # \\4: $file\n (\\d+): # \\5: $line\n (\\d+): # \\6: $column\n [ ]={4}\\n # Trailing delimiter",
31
+ "begin": "(?x) # Minimally modified `file_regex` from `Elm Make.sublime-build`\n ^\\-\\-[ ] # Leading delimiter\n ((error) # \\2: error\n |(warning) # \\3: warning\n |\\w+ # \\1: any $type\n )[:][ ] # separator\n (.+) # \\4: tag\n [ ][-][ ] # separator\n (.+?): # \\5: $file\n (\\d+): # \\6: $line\n (\\d+) # \\7: $column\n \\n$ # End",
32
32
  "beginCaptures": {
33
33
  "0": {
34
34
  "name": "markup.heading.4.elm-build-output"
@@ -43,16 +43,19 @@
43
43
  "name": "invalid.deprecated.warning.elm-build-output"
44
44
  },
45
45
  "4": {
46
- "name": "markup.underline.link.elm-build-output"
46
+ "name": "support.constant.type.elm-build-output"
47
47
  },
48
48
  "5": {
49
- "name": "constant.numeric.elm-build-output"
49
+ "name": "markup.underline.link.elm-build-output"
50
50
  },
51
51
  "6": {
52
52
  "name": "constant.numeric.elm-build-output"
53
+ },
54
+ "7": {
55
+ "name": "constant.numeric.elm-build-output"
53
56
  }
54
57
  },
55
- "end": "^-{4}$",
58
+ "end": "^\\n$",
56
59
  "endCaptures": {
57
60
  "0": {
58
61
  "name": "meta.separator.elm-build-output"
@@ -10,11 +10,11 @@
10
10
  "aw",
11
11
  "ctp"
12
12
  ],
13
- "firstLineMatch": "^#!.*(?<!-)php[0-9]{0,1}\\b|<\\?php",
13
+ "firstLineMatch": "^#!.*(?<!-)php[0-9]{0,1}\\b",
14
14
  "foldingStartMarker": "(/\\*|\\{\\s*$|<<<HTML)",
15
15
  "foldingStopMarker": "(\\*/|^\\s*\\}|^HTML;)",
16
16
  "injections": {
17
- "^text.html - (meta.embedded | meta.tag), L:^text.html meta.tag, L:source.js.embedded.html": {
17
+ "text.html.php - (meta.embedded | meta.tag), L:text.html.php meta.tag, L:source.js.embedded.html": {
18
18
  "patterns": [
19
19
  {
20
20
  "begin": "(^\\s*)(?=<\\?(?![^?]*\\?>))",
@@ -80,7 +80,8 @@ module Linguist
80
80
  generated_jflex? ||
81
81
  generated_grammarkit? ||
82
82
  generated_roxygen2? ||
83
- generated_jison?
83
+ generated_jison? ||
84
+ generated_yarn_lock?
84
85
  end
85
86
 
86
87
  # Internal: Is the blob an Xcode file?
@@ -479,5 +480,13 @@ module Linguist
479
480
  return lines[0].start_with?("/* parser generated by jison ") ||
480
481
  lines[0].start_with?("/* generated by jison-lex ")
481
482
  end
483
+
484
+ # Internal: Is the blob a generated yarn lockfile?
485
+ #
486
+ # Returns true or false.
487
+ def generated_yarn_lock?
488
+ return false unless name.match(/yarn\.lock/)
489
+ return lines[0].include?("# THIS IS AN AUTOGENERATED FILE")
490
+ end
482
491
  end
483
492
  end
@@ -1,3 +1,3 @@
1
1
  module Linguist
2
- VERSION = "5.0.2"
2
+ VERSION = "5.0.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: github-linguist
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.2
4
+ version: 5.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitHub
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-12 00:00:00.000000000 Z
11
+ date: 2017-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: charlock_holmes