github-linguist 5.0.11 → 5.1.0

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.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/grammars/source.antlr.json +2 -2
  3. data/grammars/source.batchfile.json +31 -39
  4. data/grammars/source.c++.json +2 -2
  5. data/grammars/source.c.json +1 -1
  6. data/grammars/source.capnp.json +2 -2
  7. data/grammars/source.chapel.json +2 -2
  8. data/grammars/source.clojure.json +3 -1
  9. data/grammars/source.coffee.json +6 -6
  10. data/grammars/source.crystal.json +1 -1
  11. data/grammars/source.csound-document.json +20 -5
  12. data/grammars/source.csound-score.json +1 -1
  13. data/grammars/source.csound.json +7 -20
  14. data/grammars/source.css.less.json +2 -2
  15. data/grammars/source.cython.json +2 -2
  16. data/grammars/source.dart.json +16 -20
  17. data/grammars/source.ditroff.json +3 -3
  18. data/grammars/source.elixir.json +3 -3
  19. data/grammars/source.erlang.json +1 -1
  20. data/grammars/source.fan.json +345 -0
  21. data/grammars/source.fancy.json +1 -1
  22. data/grammars/source.gdb.json +1 -1
  23. data/grammars/source.gdb.session.json +1 -1
  24. data/grammars/source.gdscript.json +1 -1
  25. data/grammars/source.gfm.json +16 -0
  26. data/grammars/source.grace.json +1 -1
  27. data/grammars/source.harbour.json +1 -1
  28. data/grammars/source.idl.json +1 -1
  29. data/grammars/source.java.json +2 -2
  30. data/grammars/source.jison.json +45 -7
  31. data/grammars/source.jisonlex.json +13 -3
  32. data/grammars/source.js.json +7 -7
  33. data/grammars/source.js.regexp.json +2 -2
  34. data/grammars/source.jsdoc.json +24 -49
  35. data/grammars/source.livescript.json +4 -4
  36. data/grammars/source.logtalk.json +1 -1
  37. data/grammars/source.lsl.json +1 -1
  38. data/grammars/source.lua.json +5 -7
  39. data/grammars/source.mask.json +2 -2
  40. data/grammars/source.nim.json +2 -2
  41. data/grammars/source.nim_filter.json +2 -2
  42. data/grammars/source.nimcfg.json +2 -2
  43. data/grammars/source.nix.json +2 -2
  44. data/grammars/source.nu.json +2 -2
  45. data/grammars/source.pan.json +711 -0
  46. data/grammars/source.pawn.json +1 -1
  47. data/grammars/source.perl6fe.json +384 -7
  48. data/grammars/source.php.zephir.json +2 -2
  49. data/grammars/source.reason.json +2 -2
  50. data/grammars/source.ring.json +277 -0
  51. data/grammars/source.rust.json +8 -3
  52. data/grammars/source.scad.json +2 -2
  53. data/grammars/source.shell.json +1 -1
  54. data/grammars/source.smalltalk.json +83 -16
  55. data/grammars/source.spin.json +2 -2
  56. data/grammars/source.sqf.json +1 -1
  57. data/grammars/source.supercollider.json +2 -2
  58. data/grammars/source.swift.json +41 -2
  59. data/grammars/source.tl.json +264 -0
  60. data/grammars/source.toml.json +3 -3
  61. data/grammars/source.vhdl.json +1 -1
  62. data/grammars/source.webassembly.json +344 -0
  63. data/grammars/source.yaml.json +2 -2
  64. data/grammars/text.haml.json +3 -3
  65. data/grammars/text.html.handlebars.json +17 -8
  66. data/grammars/text.html.markdown.source.gfm.mson.json +1 -1
  67. data/grammars/text.html.php.blade.json +987 -440
  68. data/grammars/text.html.php.json +6 -6
  69. data/grammars/text.html.soy.json +3 -3
  70. data/grammars/text.html.vue.json +10 -10
  71. data/grammars/text.marko.json +3 -3
  72. data/grammars/text.roff.json +6 -3
  73. data/lib/linguist/heuristics.rb +4 -4
  74. data/lib/linguist/languages.json +1 -1
  75. data/lib/linguist/languages.yml +54 -4
  76. data/lib/linguist/samples.json +3030 -470
  77. data/lib/linguist/vendor.yml +3 -0
  78. data/lib/linguist/version.rb +1 -1
  79. metadata +7 -2
@@ -255,7 +255,7 @@
255
255
  "name": "comment.line.number-sign.fancy"
256
256
  },
257
257
  {
258
- "match": "\\b(0[xX]\\h(?>_?\\h)*|\\d(?>_?\\d)*(\\.(?![^[:space:][:digit:]])(?>_?\\d)*)?([eE][-+]?\\d(?>_?\\d)*)?|0[bB][01]+)\\b",
258
+ "match": "\\b(0[xX][0-9A-Fa-f](?>_?[0-9A-Fa-f])*|\\d(?>_?\\d)*(\\.(?![^[:space:][:digit:]])(?>_?\\d)*)?([eE][-+]?\\d(?>_?\\d)*)?|0[bB][01]+)\\b",
259
259
  "name": "constant.numeric.fancy"
260
260
  }
261
261
  ],
@@ -161,7 +161,7 @@
161
161
  "stringEscapedChar": {
162
162
  "patterns": [
163
163
  {
164
- "match": "\\\\(?:\\\\|[abefnprtv'\"?]|[0-3]\\d{,2}|[4-7]\\d?|x[a-fA-F0-9]{,2}|u[a-fA-F0-9]{,4}|U[a-fA-F0-9]{,8})",
164
+ "match": "\\\\(?:\\\\|[abefnprtv'\"?]|[0-3]\\d{0,2}|[4-7]\\d?|x[a-fA-F0-9]{0,2}|u[a-fA-F0-9]{0,4}|U[a-fA-F0-9]{0,8})",
165
165
  "name": "constant.character.escape.gdb"
166
166
  },
167
167
  {
@@ -4,7 +4,7 @@
4
4
  "string_escaped_char": {
5
5
  "patterns": [
6
6
  {
7
- "match": "\\\\(\\\\|[abefnprtv'\"?]|[0-3]\\d{,2}|[4-7]\\d?|x[a-fA-F0-9]{,2}|u[a-fA-F0-9]{,4}|U[a-fA-F0-9]{,8})",
7
+ "match": "\\\\(\\\\|[abefnprtv'\"?]|[0-3]\\d{0,2}|[4-7]\\d?|x[a-fA-F0-9]{0,2}|u[a-fA-F0-9]{0,4}|U[a-fA-F0-9]{0,8})",
8
8
  "name": "constant.character.escape.c"
9
9
  },
10
10
  {
@@ -49,7 +49,7 @@
49
49
  "name": "string.quoted.double.node-path.gdscript"
50
50
  },
51
51
  {
52
- "match": "\\b(?i:0x\\h*)\\b",
52
+ "match": "\\b(?i:0x[0-9A-Fa-f]*)\\b",
53
53
  "name": "constant.numeric.integer.hexadecimal.gdscript"
54
54
  },
55
55
  {
@@ -1241,6 +1241,22 @@
1241
1241
  }
1242
1242
  ]
1243
1243
  },
1244
+ {
1245
+ "begin": "^\\s*(`{3,}|~{3,})\\s*([-\\w]+)\\s*$",
1246
+ "beginCaptures": {
1247
+ "0": {
1248
+ "name": "support.gfm"
1249
+ }
1250
+ },
1251
+ "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
1252
+ "endCaptures": {
1253
+ "0": {
1254
+ "name": "support.gfm"
1255
+ }
1256
+ },
1257
+ "name": "markup.code.other.gfm",
1258
+ "contentName": "source.embedded.${2:/downcase}"
1259
+ },
1244
1260
  {
1245
1261
  "begin": "^\\s*(`{3,}|~{3,}).*$",
1246
1262
  "beginCaptures": {
@@ -441,7 +441,7 @@
441
441
  },
442
442
  "patterns": [
443
443
  {
444
- "match": "\\\\(x\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)",
444
+ "match": "\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)",
445
445
  "name": "constant.character.escape.grace"
446
446
  },
447
447
  {
@@ -62,7 +62,7 @@
62
62
  },
63
63
  "escaped_character": {
64
64
  "name": "constant.character.escape.harbour",
65
- "match": "\\\\(x\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)"
65
+ "match": "\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)"
66
66
  },
67
67
  "sigils": {
68
68
  "comment": "Sigil",
@@ -173,7 +173,7 @@
173
173
  "escaped_quote": {
174
174
  "patterns": [
175
175
  {
176
- "match": "\\\\(\\\\|[abefnprtv'\"?]|[0-3]\\d{,2}|[4-7]\\d?|x[a-zA-Z0-9]+)",
176
+ "match": "\\\\(\\\\|[abefnprtv'\"?]|[0-3]\\d{0,2}|[4-7]\\d?|x[a-zA-Z0-9]+)",
177
177
  "name": "constant.character.escape.idl"
178
178
  },
179
179
  {
@@ -508,7 +508,7 @@
508
508
  "name": "variable.language.java"
509
509
  },
510
510
  {
511
- "match": "\\b0[xX]\\h([\\h_]*\\h)?[lL]?(?!\\w|\\.)",
511
+ "match": "\\b0[xX][0-9A-Fa-f]([0-9A-Fa-f_]*[0-9A-Fa-f])?[lL]?(?!\\w|\\.)",
512
512
  "name": "constant.numeric.hex.java"
513
513
  },
514
514
  {
@@ -524,7 +524,7 @@
524
524
  "name": "constant.numeric.integer.java"
525
525
  },
526
526
  {
527
- "match": "(?x)\n\t\t\t\t\t\t(?<!\\w)\t\t\t\t\t\t\t\t\t\t# Ensure word boundry\n\t\t\t\t\t\t(?>\n\t\t\t\t\t\t\t0[xX]\t\t\t\t\t\t\t\t\t# Start literal\n\t\t\t\t\t\t\t(\\h([\\h_]*\\h)?)?\t\t\t\t\t\t# Optional Number\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t(?<=\\h)\\.\t\t\t\t\t\t\t# A number must exist on\n\t\t\t\t\t\t | \\.(?=\\h)\t\t\t\t\t\t\t# one side of the decimal\n\t\t\t\t\t\t | (?<=\\h)\t\t\t\t\t\t\t\t# Decimal not required\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t(\\h([\\h_]*\\h)?)?\t\t\t\t\t\t# Optional Number\n\t\t\t\t\t\t\t[pP]\t\t\t\t\t\t\t\t\t# Exponent Indicator\n\t\t\t\t\t\t\t[+-]?(0|[1-9]([0-9_]*[0-9])?)\t\t\t# Signed Integer\n\t\t\t\t\t\t\t[fFdD]?\t\t\t\t\t\t\t\t\t# Float Type Suffix\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(?!\\w)\t\t\t\t\t\t\t\t\t\t# Ensure word boundry\n\t\t\t\t\t",
527
+ "match": "(?x)\n\t\t\t\t\t\t(?<!\\w)\t\t\t\t\t\t\t\t\t\t# Ensure word boundry\n\t\t\t\t\t\t(?>\n\t\t\t\t\t\t\t0[xX]\t\t\t\t\t\t\t\t\t# Start literal\n\t\t\t\t\t\t\t([0-9A-Fa-f]([0-9A-Fa-f_]*[0-9A-Fa-f])?)?\t\t\t\t\t\t# Optional Number\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t(?<=[0-9A-Fa-f])\\.\t\t\t\t\t\t\t# A number must exist on\n\t\t\t\t\t\t | \\.(?=[0-9A-Fa-f])\t\t\t\t\t\t\t# one side of the decimal\n\t\t\t\t\t\t | (?<=[0-9A-Fa-f])\t\t\t\t\t\t\t\t# Decimal not required\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t([0-9A-Fa-f]([0-9A-Fa-f_]*[0-9A-Fa-f])?)?\t\t\t\t\t\t# Optional Number\n\t\t\t\t\t\t\t[pP]\t\t\t\t\t\t\t\t\t# Exponent Indicator\n\t\t\t\t\t\t\t[+-]?(0|[1-9]([0-9_]*[0-9])?)\t\t\t# Signed Integer\n\t\t\t\t\t\t\t[fFdD]?\t\t\t\t\t\t\t\t\t# Float Type Suffix\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(?!\\w)\t\t\t\t\t\t\t\t\t\t# Ensure word boundry\n\t\t\t\t\t",
528
528
  "name": "constant.numeric.hex-float.java"
529
529
  },
530
530
  {
@@ -24,6 +24,7 @@
24
24
  {
25
25
  "name": "meta.section.epilogue.jison",
26
26
  "begin": "\\G",
27
+ "contentName": "source.js.embedded.jison",
27
28
  "patterns": [
28
29
  {
29
30
  "include": "#epilogue_section"
@@ -97,6 +98,7 @@
97
98
  "name": "meta.section.user-code.jisonlex",
98
99
  "begin": "\\G",
99
100
  "end": "(?=/lex)",
101
+ "contentName": "source.js.embedded.jisonlex",
100
102
  "patterns": [
101
103
  {
102
104
  "include": "source.jisonlex#user_code_section"
@@ -178,6 +180,28 @@
178
180
  }
179
181
  ]
180
182
  },
183
+ {
184
+ "name": "meta.parser-type.jison",
185
+ "begin": "%(parser-type)\\b",
186
+ "end": "$",
187
+ "beginCaptures": {
188
+ "0": {
189
+ "name": "keyword.other.declaration.$1.jison"
190
+ }
191
+ },
192
+ "patterns": [
193
+ {
194
+ "include": "#comments"
195
+ },
196
+ {
197
+ "include": "#quoted_strings"
198
+ },
199
+ {
200
+ "name": "string.unquoted.jison",
201
+ "match": "\\b[[:alpha:]_](?:[\\w-]*\\w)?\\b"
202
+ }
203
+ ]
204
+ },
181
205
  {
182
206
  "name": "meta.token.jison",
183
207
  "begin": "%(token)\\b",
@@ -214,7 +238,7 @@
214
238
  },
215
239
  {
216
240
  "name": "keyword.other.declaration.$1.jison",
217
- "match": "%(debug|import|parser-type)\\b"
241
+ "match": "%(debug|import)\\b"
218
242
  },
219
243
  {
220
244
  "name": "invalid.illegal.jison",
@@ -320,7 +344,7 @@
320
344
  },
321
345
  {
322
346
  "name": "keyword.other.$0.jison",
323
- "match": "\\berror\\b"
347
+ "match": "\\b(?:EOF|error)\\b"
324
348
  },
325
349
  {
326
350
  "name": "keyword.other.empty.jison",
@@ -361,6 +385,7 @@
361
385
  "name": "punctuation.definition.action.end.jison"
362
386
  }
363
387
  },
388
+ "contentName": "source.js.embedded.jison",
364
389
  "patterns": [
365
390
  {
366
391
  "include": "source.js"
@@ -398,6 +423,7 @@
398
423
  "name": "punctuation.definition.action.end.jison"
399
424
  }
400
425
  },
426
+ "contentName": "source.js.embedded.jison",
401
427
  "patterns": [
402
428
  {
403
429
  "include": "source.js"
@@ -409,7 +435,7 @@
409
435
  },
410
436
  {
411
437
  "name": "meta.action.jison",
412
- "begin": "(?:->|→)",
438
+ "begin": "->|→",
413
439
  "end": "((//).*)?(?=$)",
414
440
  "beginCaptures": {
415
441
  "0": {
@@ -424,6 +450,7 @@
424
450
  "name": "punctuation.definition.comment.js"
425
451
  }
426
452
  },
453
+ "contentName": "source.js.embedded.jison",
427
454
  "patterns": [
428
455
  {
429
456
  "include": "source.js"
@@ -519,7 +546,7 @@
519
546
  "numbers": {
520
547
  "patterns": [
521
548
  {
522
- "match": "(0[Xx])(\\h+)",
549
+ "match": "(0[Xx])([0-9A-Fa-f]+)",
523
550
  "captures": {
524
551
  "1": {
525
552
  "name": "storage.type.number.jison"
@@ -540,7 +567,7 @@
540
567
  {
541
568
  "name": "meta.options.jison",
542
569
  "begin": "%options\\b",
543
- "end": "$",
570
+ "end": "^(?=\\S|\\s*$)",
544
571
  "beginCaptures": {
545
572
  "0": {
546
573
  "name": "keyword.other.options.jison"
@@ -564,7 +591,17 @@
564
591
  },
565
592
  "patterns": [
566
593
  {
567
- "include": "quoted_strings"
594
+ "include": "#comments"
595
+ },
596
+ {
597
+ "name": "constant.language.boolean.$1.jison",
598
+ "match": "\\b(true|false)\\b"
599
+ },
600
+ {
601
+ "include": "#numbers"
602
+ },
603
+ {
604
+ "include": "#quoted_strings"
568
605
  },
569
606
  {
570
607
  "name": "string.unquoted.jison",
@@ -573,7 +610,7 @@
573
610
  ]
574
611
  },
575
612
  {
576
- "include": "quoted_strings"
613
+ "include": "#quoted_strings"
577
614
  }
578
615
  ]
579
616
  }
@@ -619,6 +656,7 @@
619
656
  "name": "punctuation.definition.user-code-block.end.jison"
620
657
  }
621
658
  },
659
+ "contentName": "source.js.embedded.jison",
622
660
  "patterns": [
623
661
  {
624
662
  "include": "source.js"
@@ -24,6 +24,7 @@
24
24
  {
25
25
  "name": "meta.section.user-code.jisonlex",
26
26
  "begin": "\\G",
27
+ "contentName": "source.js.embedded.jison",
27
28
  "patterns": [
28
29
  {
29
30
  "include": "#user_code_section"
@@ -70,7 +71,7 @@
70
71
  "end": "$",
71
72
  "beginCaptures": {
72
73
  "0": {
73
- "name": "entity.name.variable.jisonlex"
74
+ "name": "entity.name.other.definition.jisonlex"
74
75
  }
75
76
  },
76
77
  "patterns": [
@@ -198,6 +199,7 @@
198
199
  "name": "punctuation.definition.comment.js"
199
200
  }
200
201
  },
202
+ "contentName": "source.js.embedded.jison",
201
203
  "patterns": [
202
204
  {
203
205
  "include": "source.jison#include_declarations"
@@ -222,8 +224,16 @@
222
224
  "name_uses": {
223
225
  "patterns": [
224
226
  {
225
- "name": "variable.other.jisonlex",
226
- "match": "\\{[[:alpha:]_](?:[\\w-]*\\w)?\\}"
227
+ "name": "constant.other.name-use.jisonlex",
228
+ "match": "(\\{)[[:alpha:]_](?:[\\w-]*\\w)?(\\})",
229
+ "captures": {
230
+ "1": {
231
+ "name": "punctuation.definition.name-use.begin.jisonlex"
232
+ },
233
+ "2": {
234
+ "name": "punctuation.definition.name-use.end.jisonlex"
235
+ }
236
+ }
227
237
  }
228
238
  ]
229
239
  },
@@ -1431,7 +1431,7 @@
1431
1431
  }
1432
1432
  },
1433
1433
  {
1434
- "match": "\\\\(x\\h{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)",
1434
+ "match": "\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)",
1435
1435
  "name": "constant.character.escape.js"
1436
1436
  }
1437
1437
  ]
@@ -1772,10 +1772,10 @@
1772
1772
  {
1773
1773
  "captures": {
1774
1774
  "1": {
1775
- "name": "punctuation.section.begin.comment.js"
1775
+ "name": "punctuation.definition.comment.begin.js"
1776
1776
  },
1777
1777
  "2": {
1778
- "name": "punctuation.section.end.comment.js"
1778
+ "name": "punctuation.definition.comment.end.js"
1779
1779
  }
1780
1780
  },
1781
1781
  "match": "(/\\*)(\\*/)",
@@ -1785,13 +1785,13 @@
1785
1785
  "begin": "/\\*\\*",
1786
1786
  "beginCaptures": {
1787
1787
  "0": {
1788
- "name": "punctuation.section.begin.comment.js"
1788
+ "name": "punctuation.definition.comment.begin.js"
1789
1789
  }
1790
1790
  },
1791
1791
  "end": "\\*/",
1792
1792
  "endCaptures": {
1793
1793
  "0": {
1794
- "name": "punctuation.section.end.comment.js"
1794
+ "name": "punctuation.definition.comment.end.js"
1795
1795
  }
1796
1796
  },
1797
1797
  "name": "comment.block.documentation.js",
@@ -1805,13 +1805,13 @@
1805
1805
  "begin": "/\\*",
1806
1806
  "beginCaptures": {
1807
1807
  "0": {
1808
- "name": "punctuation.section.begin.comment.js"
1808
+ "name": "punctuation.definition.comment.begin.js"
1809
1809
  }
1810
1810
  },
1811
1811
  "end": "\\*/",
1812
1812
  "endCaptures": {
1813
1813
  "0": {
1814
- "name": "punctuation.section.end.comment.js"
1814
+ "name": "punctuation.definition.comment.end.js"
1815
1815
  }
1816
1816
  },
1817
1817
  "name": "comment.block.js"
@@ -17,7 +17,7 @@
17
17
  "name": "constant.character.character-class.regexp"
18
18
  },
19
19
  {
20
- "match": "\\\\([0-7]{3}|x\\h\\h|u\\h\\h\\h\\h)",
20
+ "match": "\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})",
21
21
  "name": "constant.character.numeric.regexp"
22
22
  },
23
23
  {
@@ -133,7 +133,7 @@
133
133
  "name": "constant.character.escape.backslash.regexp"
134
134
  }
135
135
  },
136
- "match": "(?:.|(\\\\(?:[0-7]{3}|x\\h\\h|u\\h\\h\\h\\h))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x\\h\\h|u\\h\\h\\h\\h))|(\\\\c[A-Z])|(\\\\.))",
136
+ "match": "(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))",
137
137
  "name": "constant.other.character-class.range.regexp"
138
138
  },
139
139
  {
@@ -14,7 +14,7 @@
14
14
  "name": "constant.language.access-type.jsdoc"
15
15
  }
16
16
  },
17
- "match": "(?x)\n((@)access)\n\\s+\n(private|protected|public)\n\\b"
17
+ "match": "(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b"
18
18
  },
19
19
  {
20
20
  "match": "(?x)\n((@)author)\n\\s+\n(\n [^@\\s<>*/]\n (?:[^@<>*/]|\\*[^/])*\n)\n(?:\n \\s*\n (<)\n ([^>\\s]+)\n (>)\n)?",
@@ -146,7 +146,7 @@
146
146
  "name": "entity.name.type.instance.jsdoc"
147
147
  }
148
148
  },
149
- "match": "(?x)\n((@)see)\n\\s+\n(?:\n # URL\n (\n (?=https?://)\n (?:[^\\s*]|\\*[^/])+\n )\n |\n # JSDoc namepath\n (\n (?!https?://)\n (?:[^@\\s*/]|\\*[^/])+\n )\n)"
149
+ "match": "(?x)\n((@)see)\n\\s+\n(?:\n # URL\n (\n (?=https?://)\n (?:[^\\s*]|\\*[^/])+\n )\n |\n # JSDoc namepath\n (\n (?!\n # Avoid matching bare URIs (also acceptable as links)\n https?://\n |\n # Avoid matching {@inline tags}; we match those below\n (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag}\n {@(?:link|linkcode|linkplain|tutorial)\\b\n )\n # Matched namepath\n (?:[^@\\s*/]|\\*[^/])+\n )\n)"
150
150
  },
151
151
  {
152
152
  "captures": {
@@ -224,35 +224,32 @@
224
224
  },
225
225
  {
226
226
  "name": "variable.other.jsdoc",
227
- "begin": "\\[",
228
- "end": "\\]|(?=\\*/)",
229
- "patterns": [
230
- {
231
- "match": "(=)((?:[^\\]*]|\\*[^/])*)",
232
- "captures": {
233
- "1": {
234
- "name": "keyword.operator.assignment.jsdoc"
227
+ "match": "(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n (?:\\[\\])? # Foo[].bar properties within an array\n \\. # Foo.Bar namespaced parameter\n [\\w$]+\n)*\n(?:\n \\s*\n (=) # [foo=bar] Default parameter value\n \\s*\n (\n # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n (?:\n \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" | # [foo=\"bar\"] Double-quoted\n '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | # [foo='bar'] Single-quoted\n \\[ (?:(?:\\*(?!/))|[^*])*? \\] | # [foo=[1,2]] Array literal\n (?:(?:\\*(?!/))|[^*])*? # Everything else\n )*\n )\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))",
228
+ "captures": {
229
+ "1": {
230
+ "name": "punctuation.definition.optional-value.begin.bracket.square.jsdoc"
231
+ },
232
+ "2": {
233
+ "name": "keyword.operator.assignment.jsdoc"
234
+ },
235
+ "3": {
236
+ "name": "source.embedded.js",
237
+ "patterns": [
238
+ {
239
+ "include": "#inline-tags"
235
240
  },
236
- "2": {
237
- "name": "source.embedded.js",
238
- "patterns": [
239
- {
240
- "include": "#inline-tags"
241
- },
242
- {
243
- "include": "source.js"
244
- }
245
- ]
241
+ {
242
+ "include": "source.js"
246
243
  }
247
- }
244
+ ]
248
245
  },
249
- {
250
- "include": "#brackets"
246
+ "4": {
247
+ "name": "punctuation.definition.optional-value.end.bracket.square.jsdoc"
251
248
  },
252
- {
253
- "include": "#quotes"
249
+ "5": {
250
+ "name": "invalid.illegal.syntax.jsdoc"
254
251
  }
255
- ]
252
+ }
256
253
  }
257
254
  ]
258
255
  },
@@ -334,7 +331,7 @@
334
331
  "name": "punctuation.definition.block.tag.jsdoc"
335
332
  }
336
333
  },
337
- "match": "(?x) (@)\n(?:abstract|access|alias|arg|argument|async|attribute|augments|author|beta|borrows|bubbles\n|callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright\n|default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception\n|exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func\n|function|global|host|ignore|implements|implicitCast|inherit[Dd]oc|inner|instance|interface|kind\n|lends|license|listens|main|member|memberof!?|method|mixes|mixins?|modifies|module|name|namespace\n|noalias|nocollapse|nocompile|nosideeffects|override|overview|package|param|preserve|private|prop\n|property|protected|public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule\n|summary|suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation\n|version|virtual|writeOnce)\n\\b",
334
+ "match": "(?x) (@)\n(?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles\n|callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright\n|default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception\n|exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func\n|function|global|host|ignore|implements|implicitCast|inherit[Dd]oc|inner|instance|interface\n|internal|kind|lends|license|listens|main|member|memberof!?|method|mixes|mixins?|modifies|module\n|name|namespace|noalias|nocollapse|nocompile|nosideeffects|override|overview|package|param|preserve\n|private|prop|property|protected|public|read[Oo]nly|record|require[ds]|returns?|see|since|static\n|struct|submodule|summary|suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted\n|uses|var|variation|version|virtual|writeOnce)\n\\b",
338
335
  "name": "storage.type.class.jsdoc"
339
336
  },
340
337
  {
@@ -425,28 +422,6 @@
425
422
  }
426
423
  ]
427
424
  },
428
- "quotes": {
429
- "patterns": [
430
- {
431
- "begin": "'",
432
- "end": "'|(?=\\*/)",
433
- "patterns": [
434
- {
435
- "include": "#quotes"
436
- }
437
- ]
438
- },
439
- {
440
- "begin": "\"",
441
- "end": "\"|(?=\\*/)",
442
- "patterns": [
443
- {
444
- "include": "#quotes"
445
- }
446
- ]
447
- }
448
- ]
449
- },
450
425
  "type": {
451
426
  "patterns": [
452
427
  {