github-linguist 7.5.1 → 7.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/grammars/annotation.liquidhaskell.haskell.json +122 -24
  3. data/grammars/etc.json +7 -0
  4. data/grammars/hint.haskell.json +122 -24
  5. data/grammars/hint.message.haskell.json +122 -24
  6. data/grammars/hint.type.haskell.json +122 -24
  7. data/grammars/injections.etc.json +48 -10
  8. data/grammars/source.abnf.json +180 -353
  9. data/grammars/source.ballerina.json +205 -50
  10. data/grammars/source.bnf.json +191 -0
  11. data/grammars/source.cabal.json +1 -1
  12. data/grammars/source.ditroff.desc.json +1 -1
  13. data/grammars/source.ebnf.json +157 -147
  14. data/grammars/source.editorconfig.json +30 -5
  15. data/grammars/source.emacs.lisp.json +4 -4
  16. data/grammars/source.gremlin.json +200 -0
  17. data/grammars/source.haproxy-config.json +65 -13
  18. data/grammars/source.haskell.json +122 -24
  19. data/grammars/source.hql.json +1 -1
  20. data/grammars/source.hsig.json +122 -24
  21. data/grammars/source.hx.json +5 -5
  22. data/grammars/source.hxml.json +4 -4
  23. data/grammars/source.ideal.json +4 -4
  24. data/grammars/source.igor.json +325 -0
  25. data/grammars/source.jlex.json +322 -0
  26. data/grammars/source.julia.json +132 -1
  27. data/grammars/source.lean.json +103 -54
  28. data/grammars/source.lex.json +232 -0
  29. data/grammars/source.lex.regexp.json +269 -0
  30. data/grammars/source.logos.json +1 -1
  31. data/grammars/source.meson.json +1 -1
  32. data/grammars/source.mlir.json +389 -0
  33. data/grammars/source.nanorc.json +3 -0
  34. data/grammars/source.pic.json +19 -19
  35. data/grammars/source.plist.json +336 -0
  36. data/grammars/source.powershell.json +2 -2
  37. data/grammars/source.purescript.json +2 -2
  38. data/grammars/source.rascal.json +1 -0
  39. data/grammars/source.regexp.extended.json +544 -6
  40. data/grammars/source.regexp.json +408 -31
  41. data/grammars/source.renpy.json +3 -1
  42. data/grammars/source.scala.json +199 -97
  43. data/grammars/source.smpl.json +314 -0
  44. data/grammars/source.solidity.json +1 -1
  45. data/grammars/source.sourcepawn.json +654 -0
  46. data/grammars/source.sqf.json +5 -1
  47. data/grammars/source.swift.json +56 -11
  48. data/grammars/source.sy.json +800 -0
  49. data/grammars/source.ts.json +64 -47
  50. data/grammars/source.tsx.json +65 -48
  51. data/grammars/source.v.json +1184 -0
  52. data/grammars/source.viml.json +31 -31
  53. data/grammars/source.wollok.json +1 -1
  54. data/grammars/source.xojo.json +2 -2
  55. data/grammars/source.yacc.json +626 -0
  56. data/grammars/source.yara.json +1 -1
  57. data/grammars/source.yasnippet.json +15 -25
  58. data/grammars/source.zeek.json +4 -4
  59. data/grammars/source.zig.json +594 -195
  60. data/grammars/text.eml.basic.json +19 -6
  61. data/grammars/text.html.php.blade.json +3 -3
  62. data/grammars/text.plain.json +18 -0
  63. data/grammars/text.roff.json +926 -437
  64. data/grammars/text.runoff.json +3 -3
  65. data/grammars/text.tex.latex.haskell.json +122 -24
  66. data/grammars/text.texinfo.json +1525 -0
  67. data/grammars/text.xml.plist.json +664 -0
  68. data/grammars/text.xml.svg.json +556 -0
  69. data/grammars/version +1 -1
  70. data/lib/linguist.rb +3 -1
  71. data/lib/linguist/VERSION +1 -1
  72. data/lib/linguist/generated.rb +62 -17
  73. data/lib/linguist/heuristics.yml +13 -0
  74. data/lib/linguist/language.rb +1 -11
  75. data/lib/linguist/languages.json +1 -1
  76. data/lib/linguist/languages.yml +179 -19
  77. data/lib/linguist/samples.json +2778 -732
  78. data/lib/linguist/strategy/manpage.rb +42 -0
  79. metadata +22 -5
  80. data/grammars/source.bison.json +0 -55
  81. data/grammars/source.sp.json +0 -113
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 681599dd6960c2671b64dacbd1c6fac0ab936466
4
- data.tar.gz: 5ece6a23e7f30b785ddf1aaab971dcda7bcda556
3
+ metadata.gz: 0ed222666d0aca787b0aa049c3a9e224cdbdc4c5
4
+ data.tar.gz: c4f8792d4184481ab146d3564268959490e7db68
5
5
  SHA512:
6
- metadata.gz: 6114fa52153abca2dec7979a8b289447b46beacd5a5d4ff03414ec85cd550afddd1d5b9265deecb743bfad069bae1b3f9287fba4ea498c6ca6418ae4807dc93e
7
- data.tar.gz: cbf68f2ce72cbe773ce975de37d2cabf314ca0903b60082a66151271a28d041464bedf3e6c54db1020ee52df3832130af138775e356b377c2883add0784dc8c2
6
+ metadata.gz: 83d6828a32c1710979bcaa981f0c56d9d2304ae3c68f5f51d336323972a82762c1b1565e6c0e8a5794e89b9e29b0490ed4beeb5cbac44dbcc53ec0c3133b1d6b
7
+ data.tar.gz: 5937dd7e2deb2d32cce1b1e854d9d952c1dafa9a926c6fdc6082a66725b2702d6e9f2e3415f7f3a73ef1157dc6894bc32d38ad2e3768173d704a920fa8795ca6
@@ -27,6 +27,14 @@
27
27
  }
28
28
  ],
29
29
  "repository": {
30
+ "arrow": {
31
+ "patterns": [
32
+ {
33
+ "name": "keyword.other.arrow.haskell",
34
+ "match": "(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:-\u003e|→)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))"
35
+ }
36
+ ]
37
+ },
30
38
  "assignment_op": {
31
39
  "patterns": [
32
40
  {
@@ -47,6 +55,14 @@
47
55
  }
48
56
  ]
49
57
  },
58
+ "big_arrow": {
59
+ "patterns": [
60
+ {
61
+ "name": "keyword.other.big-arrow.haskell",
62
+ "match": "(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:=\u003e|⇒)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))"
63
+ }
64
+ ]
65
+ },
50
66
  "block_comment": {
51
67
  "patterns": [
52
68
  {
@@ -283,24 +299,10 @@
283
299
  "include": "#assignment_op"
284
300
  },
285
301
  {
286
- "match": "(?:(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s*)(?:((?:(?!deriving)(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:(?!deriving)(?:[\\w()'→⇒\\[\\],]|-\u003e|=\u003e)+\\s*)+))(?:(?:\\s+)(?:(?!deriving)(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:(?!deriving)(?:[\\w()'→⇒\\[\\],]|-\u003e|=\u003e)+\\s*)+)))*)?))",
287
- "captures": {
288
- "1": {
289
- "patterns": [
290
- {
291
- "include": "#type_ctor"
292
- }
293
- ]
294
- },
295
- "2": {
296
- "name": "meta.type-signature.haskell",
297
- "patterns": [
298
- {
299
- "include": "#type_signature"
300
- }
301
- ]
302
- }
303
- }
302
+ "include": "#type_ctor_forall"
303
+ },
304
+ {
305
+ "include": "#type_ctor_alt"
304
306
  },
305
307
  {
306
308
  "match": "\\|",
@@ -1471,6 +1473,97 @@
1471
1473
  }
1472
1474
  ]
1473
1475
  },
1476
+ "type_ctor_alt": {
1477
+ "patterns": [
1478
+ {
1479
+ "contentName": "meta.type-signature.haskell",
1480
+ "begin": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s*",
1481
+ "end": "^(?!(?:\\G(?:\\s*\\w+\\s)?|^)[ \\t]|[ \\t]*$)|(?=\\{|\\}|\\||(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))deriving(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])))",
1482
+ "patterns": [
1483
+ {
1484
+ "include": "#comments"
1485
+ },
1486
+ {
1487
+ "include": "#type_signature"
1488
+ }
1489
+ ],
1490
+ "beginCaptures": {
1491
+ "1": {
1492
+ "patterns": [
1493
+ {
1494
+ "include": "#type_ctor"
1495
+ }
1496
+ ]
1497
+ }
1498
+ }
1499
+ }
1500
+ ]
1501
+ },
1502
+ "type_ctor_forall": {
1503
+ "patterns": [
1504
+ {
1505
+ "contentName": "meta.type-signature.haskell",
1506
+ "begin": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))forall(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
1507
+ "end": "^(?!(?:\\G(?:\\s*\\w+\\s)?|^)[ \\t]|[ \\t]*$)|(?=\\{|\\}|\\||(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))deriving(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])))",
1508
+ "patterns": [
1509
+ {
1510
+ "include": "#comments"
1511
+ },
1512
+ {
1513
+ "match": "\\G.*?(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:=\u003e|⇒)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))",
1514
+ "captures": {
1515
+ "0": {
1516
+ "patterns": [
1517
+ {
1518
+ "include": "#type_signature"
1519
+ }
1520
+ ]
1521
+ }
1522
+ }
1523
+ },
1524
+ {
1525
+ "match": "\\G.*?\\.",
1526
+ "captures": {
1527
+ "0": {
1528
+ "patterns": [
1529
+ {
1530
+ "include": "#type_signature"
1531
+ }
1532
+ ]
1533
+ }
1534
+ }
1535
+ },
1536
+ {
1537
+ "include": "#big_arrow"
1538
+ },
1539
+ {
1540
+ "include": "#type_variable"
1541
+ },
1542
+ {
1543
+ "begin": "\\(",
1544
+ "end": "\\)",
1545
+ "patterns": [
1546
+ {
1547
+ "include": "#type_signature"
1548
+ }
1549
+ ]
1550
+ },
1551
+ {
1552
+ "include": "#type_ctor_alt"
1553
+ }
1554
+ ],
1555
+ "beginCaptures": {
1556
+ "0": {
1557
+ "patterns": [
1558
+ {
1559
+ "include": "#type_signature"
1560
+ }
1561
+ ]
1562
+ }
1563
+ }
1564
+ }
1565
+ ]
1566
+ },
1474
1567
  "type_name": {
1475
1568
  "patterns": [
1476
1569
  {
@@ -1557,12 +1650,10 @@
1557
1650
  "include": "#string"
1558
1651
  },
1559
1652
  {
1560
- "name": "keyword.other.arrow.haskell",
1561
- "match": "(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:-\u003e|→)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))"
1653
+ "include": "#arrow"
1562
1654
  },
1563
1655
  {
1564
- "name": "keyword.other.big-arrow.haskell",
1565
- "match": "(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:=\u003e|⇒)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))"
1656
+ "include": "#big_arrow"
1566
1657
  },
1567
1658
  {
1568
1659
  "name": "keyword.operator.promoted.haskell",
@@ -1581,8 +1672,7 @@
1581
1672
  "include": "#operator"
1582
1673
  },
1583
1674
  {
1584
- "name": "variable.other.generic-type.haskell",
1585
- "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"
1675
+ "include": "#type_variable"
1586
1676
  },
1587
1677
  {
1588
1678
  "name": "entity.name.type.promoted.haskell",
@@ -1605,6 +1695,14 @@
1605
1695
  }
1606
1696
  ]
1607
1697
  },
1698
+ "type_variable": {
1699
+ "patterns": [
1700
+ {
1701
+ "name": "variable.other.generic-type.haskell",
1702
+ "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"
1703
+ }
1704
+ ]
1705
+ },
1608
1706
  "unit": {
1609
1707
  "patterns": [
1610
1708
  {
@@ -1,6 +1,9 @@
1
1
  {
2
2
  "scopeName": "etc",
3
3
  "patterns": [
4
+ {
5
+ "include": "#comma"
6
+ },
4
7
  {
5
8
  "include": "#comment"
6
9
  },
@@ -42,6 +45,10 @@
42
45
  "name": "keyword.operator.assignment.key-value.colon",
43
46
  "match": ":"
44
47
  },
48
+ "comma": {
49
+ "name": "punctuation.separator.delimiter.comma",
50
+ "match": ","
51
+ },
45
52
  "comment": {
46
53
  "name": "comment.line.number-sign",
47
54
  "begin": "#",
@@ -9,6 +9,14 @@
9
9
  }
10
10
  ],
11
11
  "repository": {
12
+ "arrow": {
13
+ "patterns": [
14
+ {
15
+ "name": "keyword.other.arrow.haskell",
16
+ "match": "(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:-\u003e|→)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))"
17
+ }
18
+ ]
19
+ },
12
20
  "assignment_op": {
13
21
  "patterns": [
14
22
  {
@@ -29,6 +37,14 @@
29
37
  }
30
38
  ]
31
39
  },
40
+ "big_arrow": {
41
+ "patterns": [
42
+ {
43
+ "name": "keyword.other.big-arrow.haskell",
44
+ "match": "(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:=\u003e|⇒)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))"
45
+ }
46
+ ]
47
+ },
32
48
  "block_comment": {
33
49
  "patterns": [
34
50
  {
@@ -265,24 +281,10 @@
265
281
  "include": "#assignment_op"
266
282
  },
267
283
  {
268
- "match": "(?:(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s*)(?:((?:(?!deriving)(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:(?!deriving)(?:[\\w()'→⇒\\[\\],]|-\u003e|=\u003e)+\\s*)+))(?:(?:\\s+)(?:(?!deriving)(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:(?!deriving)(?:[\\w()'→⇒\\[\\],]|-\u003e|=\u003e)+\\s*)+)))*)?))",
269
- "captures": {
270
- "1": {
271
- "patterns": [
272
- {
273
- "include": "#type_ctor"
274
- }
275
- ]
276
- },
277
- "2": {
278
- "name": "meta.type-signature.haskell",
279
- "patterns": [
280
- {
281
- "include": "#type_signature"
282
- }
283
- ]
284
- }
285
- }
284
+ "include": "#type_ctor_forall"
285
+ },
286
+ {
287
+ "include": "#type_ctor_alt"
286
288
  },
287
289
  {
288
290
  "match": "\\|",
@@ -1411,6 +1413,97 @@
1411
1413
  }
1412
1414
  ]
1413
1415
  },
1416
+ "type_ctor_alt": {
1417
+ "patterns": [
1418
+ {
1419
+ "contentName": "meta.type-signature.haskell",
1420
+ "begin": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s*",
1421
+ "end": "^(?!^[ \\t]|[ \\t]*$)|(?=\\{|\\}|\\||(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))deriving(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])))",
1422
+ "patterns": [
1423
+ {
1424
+ "include": "#comments"
1425
+ },
1426
+ {
1427
+ "include": "#type_signature"
1428
+ }
1429
+ ],
1430
+ "beginCaptures": {
1431
+ "1": {
1432
+ "patterns": [
1433
+ {
1434
+ "include": "#type_ctor"
1435
+ }
1436
+ ]
1437
+ }
1438
+ }
1439
+ }
1440
+ ]
1441
+ },
1442
+ "type_ctor_forall": {
1443
+ "patterns": [
1444
+ {
1445
+ "contentName": "meta.type-signature.haskell",
1446
+ "begin": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))forall(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
1447
+ "end": "^(?!^[ \\t]|[ \\t]*$)|(?=\\{|\\}|\\||(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))deriving(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])))",
1448
+ "patterns": [
1449
+ {
1450
+ "include": "#comments"
1451
+ },
1452
+ {
1453
+ "match": "\\G.*?(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:=\u003e|⇒)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))",
1454
+ "captures": {
1455
+ "0": {
1456
+ "patterns": [
1457
+ {
1458
+ "include": "#type_signature"
1459
+ }
1460
+ ]
1461
+ }
1462
+ }
1463
+ },
1464
+ {
1465
+ "match": "\\G.*?\\.",
1466
+ "captures": {
1467
+ "0": {
1468
+ "patterns": [
1469
+ {
1470
+ "include": "#type_signature"
1471
+ }
1472
+ ]
1473
+ }
1474
+ }
1475
+ },
1476
+ {
1477
+ "include": "#big_arrow"
1478
+ },
1479
+ {
1480
+ "include": "#type_variable"
1481
+ },
1482
+ {
1483
+ "begin": "\\(",
1484
+ "end": "\\)",
1485
+ "patterns": [
1486
+ {
1487
+ "include": "#type_signature"
1488
+ }
1489
+ ]
1490
+ },
1491
+ {
1492
+ "include": "#type_ctor_alt"
1493
+ }
1494
+ ],
1495
+ "beginCaptures": {
1496
+ "0": {
1497
+ "patterns": [
1498
+ {
1499
+ "include": "#type_signature"
1500
+ }
1501
+ ]
1502
+ }
1503
+ }
1504
+ }
1505
+ ]
1506
+ },
1414
1507
  "type_name": {
1415
1508
  "patterns": [
1416
1509
  {
@@ -1484,12 +1577,10 @@
1484
1577
  "include": "#string"
1485
1578
  },
1486
1579
  {
1487
- "name": "keyword.other.arrow.haskell",
1488
- "match": "(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:-\u003e|→)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))"
1580
+ "include": "#arrow"
1489
1581
  },
1490
1582
  {
1491
- "name": "keyword.other.big-arrow.haskell",
1492
- "match": "(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:=\u003e|⇒)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))"
1583
+ "include": "#big_arrow"
1493
1584
  },
1494
1585
  {
1495
1586
  "name": "keyword.operator.promoted.haskell",
@@ -1508,8 +1599,7 @@
1508
1599
  "include": "#operator"
1509
1600
  },
1510
1601
  {
1511
- "name": "variable.other.generic-type.haskell",
1512
- "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"
1602
+ "include": "#type_variable"
1513
1603
  },
1514
1604
  {
1515
1605
  "name": "entity.name.type.promoted.haskell",
@@ -1532,6 +1622,14 @@
1532
1622
  }
1533
1623
  ]
1534
1624
  },
1625
+ "type_variable": {
1626
+ "patterns": [
1627
+ {
1628
+ "name": "variable.other.generic-type.haskell",
1629
+ "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"
1630
+ }
1631
+ ]
1632
+ },
1535
1633
  "unit": {
1536
1634
  "patterns": [
1537
1635
  {
@@ -33,6 +33,14 @@
33
33
  }
34
34
  ],
35
35
  "repository": {
36
+ "arrow": {
37
+ "patterns": [
38
+ {
39
+ "name": "keyword.other.arrow.haskell",
40
+ "match": "(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:-\u003e|→)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))"
41
+ }
42
+ ]
43
+ },
36
44
  "assignment_op": {
37
45
  "patterns": [
38
46
  {
@@ -53,6 +61,14 @@
53
61
  }
54
62
  ]
55
63
  },
64
+ "big_arrow": {
65
+ "patterns": [
66
+ {
67
+ "name": "keyword.other.big-arrow.haskell",
68
+ "match": "(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:=\u003e|⇒)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))"
69
+ }
70
+ ]
71
+ },
56
72
  "block_comment": {
57
73
  "patterns": [
58
74
  {
@@ -289,24 +305,10 @@
289
305
  "include": "#assignment_op"
290
306
  },
291
307
  {
292
- "match": "(?:(?:(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s*)(?:((?:(?!deriving)(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:(?!deriving)(?:[\\w()'→⇒\\[\\],]|-\u003e|=\u003e)+\\s*)+))(?:(?:\\s+)(?:(?!deriving)(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*|(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:(?!deriving)(?:[\\w()'→⇒\\[\\],]|-\u003e|=\u003e)+\\s*)+)))*)?))",
293
- "captures": {
294
- "1": {
295
- "patterns": [
296
- {
297
- "include": "#type_ctor"
298
- }
299
- ]
300
- },
301
- "2": {
302
- "name": "meta.type-signature.haskell",
303
- "patterns": [
304
- {
305
- "include": "#type_signature"
306
- }
307
- ]
308
- }
309
- }
308
+ "include": "#type_ctor_forall"
309
+ },
310
+ {
311
+ "include": "#type_ctor_alt"
310
312
  },
311
313
  {
312
314
  "match": "\\|",
@@ -1435,6 +1437,97 @@
1435
1437
  }
1436
1438
  ]
1437
1439
  },
1440
+ "type_ctor_alt": {
1441
+ "patterns": [
1442
+ {
1443
+ "contentName": "meta.type-signature.haskell",
1444
+ "begin": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*)\\s*",
1445
+ "end": "^(?!^[ \\t]|[ \\t]*$)|(?=\\{|\\}|\\||(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))deriving(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])))",
1446
+ "patterns": [
1447
+ {
1448
+ "include": "#comments"
1449
+ },
1450
+ {
1451
+ "include": "#type_signature"
1452
+ }
1453
+ ],
1454
+ "beginCaptures": {
1455
+ "1": {
1456
+ "patterns": [
1457
+ {
1458
+ "include": "#type_ctor"
1459
+ }
1460
+ ]
1461
+ }
1462
+ }
1463
+ }
1464
+ ]
1465
+ },
1466
+ "type_ctor_forall": {
1467
+ "patterns": [
1468
+ {
1469
+ "contentName": "meta.type-signature.haskell",
1470
+ "begin": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))forall(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
1471
+ "end": "^(?!^[ \\t]|[ \\t]*$)|(?=\\{|\\}|\\||(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))deriving(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])))",
1472
+ "patterns": [
1473
+ {
1474
+ "include": "#comments"
1475
+ },
1476
+ {
1477
+ "match": "\\G.*?(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:=\u003e|⇒)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))",
1478
+ "captures": {
1479
+ "0": {
1480
+ "patterns": [
1481
+ {
1482
+ "include": "#type_signature"
1483
+ }
1484
+ ]
1485
+ }
1486
+ }
1487
+ },
1488
+ {
1489
+ "match": "\\G.*?\\.",
1490
+ "captures": {
1491
+ "0": {
1492
+ "patterns": [
1493
+ {
1494
+ "include": "#type_signature"
1495
+ }
1496
+ ]
1497
+ }
1498
+ }
1499
+ },
1500
+ {
1501
+ "include": "#big_arrow"
1502
+ },
1503
+ {
1504
+ "include": "#type_variable"
1505
+ },
1506
+ {
1507
+ "begin": "\\(",
1508
+ "end": "\\)",
1509
+ "patterns": [
1510
+ {
1511
+ "include": "#type_signature"
1512
+ }
1513
+ ]
1514
+ },
1515
+ {
1516
+ "include": "#type_ctor_alt"
1517
+ }
1518
+ ],
1519
+ "beginCaptures": {
1520
+ "0": {
1521
+ "patterns": [
1522
+ {
1523
+ "include": "#type_signature"
1524
+ }
1525
+ ]
1526
+ }
1527
+ }
1528
+ }
1529
+ ]
1530
+ },
1438
1531
  "type_name": {
1439
1532
  "patterns": [
1440
1533
  {
@@ -1508,12 +1601,10 @@
1508
1601
  "include": "#string"
1509
1602
  },
1510
1603
  {
1511
- "name": "keyword.other.arrow.haskell",
1512
- "match": "(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:-\u003e|→)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))"
1604
+ "include": "#arrow"
1513
1605
  },
1514
1606
  {
1515
- "name": "keyword.other.big-arrow.haskell",
1516
- "match": "(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:=\u003e|⇒)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))"
1607
+ "include": "#big_arrow"
1517
1608
  },
1518
1609
  {
1519
1610
  "name": "keyword.operator.promoted.haskell",
@@ -1532,8 +1623,7 @@
1532
1623
  "include": "#operator"
1533
1624
  },
1534
1625
  {
1535
- "name": "variable.other.generic-type.haskell",
1536
- "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"
1626
+ "include": "#type_variable"
1537
1627
  },
1538
1628
  {
1539
1629
  "name": "entity.name.type.promoted.haskell",
@@ -1556,6 +1646,14 @@
1556
1646
  }
1557
1647
  ]
1558
1648
  },
1649
+ "type_variable": {
1650
+ "patterns": [
1651
+ {
1652
+ "name": "variable.other.generic-type.haskell",
1653
+ "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"
1654
+ }
1655
+ ]
1656
+ },
1559
1657
  "unit": {
1560
1658
  "patterns": [
1561
1659
  {