github-linguist 5.0.2 → 5.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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