github-linguist 7.6.0 → 7.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. checksums.yaml +5 -5
  2. data/bin/github-linguist +17 -4
  3. data/grammars/annotation.liquidhaskell.haskell.json +58 -11
  4. data/grammars/etc.json +472 -4
  5. data/grammars/hidden.manref.json +29 -0
  6. data/grammars/hidden.regexp.injection-shell.json +28 -0
  7. data/grammars/hint.haskell.json +58 -11
  8. data/grammars/hint.message.haskell.json +58 -11
  9. data/grammars/hint.type.haskell.json +58 -11
  10. data/grammars/injections.etc.json +601 -1
  11. data/grammars/markdown.plantuml.codeblock.json +26 -0
  12. data/grammars/source.4dm.json +1156 -0
  13. data/grammars/source.abap.json +7 -7
  14. data/grammars/source.abl.json +685 -83
  15. data/grammars/source.abnf.json +23 -1
  16. data/grammars/source.agda.json +33 -203
  17. data/grammars/source.ahk.json +9 -5
  18. data/grammars/source.angelscript.json +1 -1
  19. data/grammars/source.ballerina.json +55 -19
  20. data/grammars/source.c++.json +4 -4
  21. data/grammars/source.c.platform.json +584 -33
  22. data/grammars/source.chapel.json +7 -4
  23. data/grammars/source.csound.json +1 -1
  24. data/grammars/source.css.json +3 -3
  25. data/grammars/source.css.scss.json +164 -15
  26. data/grammars/source.curlrc.json +869 -65
  27. data/grammars/source.d.json +2 -2
  28. data/grammars/source.dart.json +58 -32
  29. data/grammars/source.dircolors.json +137 -0
  30. data/grammars/source.direct-x.json +135 -0
  31. data/grammars/source.ebnf.json +67 -39
  32. data/grammars/source.editorconfig.json +23 -5
  33. data/grammars/source.elixir.json +51 -0
  34. data/grammars/source.elm.json +1 -1
  35. data/grammars/source.emacs.lisp.json +10 -0
  36. data/grammars/source.faust.json +119 -0
  37. data/grammars/source.futhark.json +146 -0
  38. data/grammars/source.gcode.json +166 -8
  39. data/grammars/source.gedcom.json +196 -0
  40. data/grammars/source.generic-db.json +41 -0
  41. data/grammars/source.gfm.blade.json +15 -0
  42. data/grammars/source.gfm.json +1697 -1439
  43. data/grammars/source.gitconfig.json +1 -1
  44. data/grammars/source.hack.json +200 -98
  45. data/grammars/source.haskell.json +58 -11
  46. data/grammars/source.hlsl.json +9 -5
  47. data/grammars/source.hosts.json +40 -0
  48. data/grammars/source.hsig.json +58 -11
  49. data/grammars/source.httpspec.json +1 -1
  50. data/grammars/source.hx.json +9 -5
  51. data/grammars/source.hxml.json +2 -2
  52. data/grammars/source.idris.json +1 -1
  53. data/grammars/source.igor.json +46 -2
  54. data/grammars/source.ini.npmrc.json +311 -0
  55. data/grammars/source.inno.json +133 -0
  56. data/grammars/source.inputrc.json +500 -0
  57. data/grammars/source.isabelle.root.json +1 -1
  58. data/grammars/source.jison.json +3 -0
  59. data/grammars/source.jisonlex.json +3 -0
  60. data/grammars/source.js.json +4 -4
  61. data/grammars/source.julia.json +70 -24
  62. data/grammars/source.kotlin.json +17 -51
  63. data/grammars/source.lcov.json +398 -0
  64. data/grammars/source.lean.json +20 -4
  65. data/grammars/source.lean.markdown.json +2598 -0
  66. data/grammars/source.lex.json +4 -4
  67. data/grammars/source.m2.json +125 -0
  68. data/grammars/source.m4.json +141 -99
  69. data/grammars/source.man-conf.json +47 -35
  70. data/grammars/source.matlab.json +437 -184
  71. data/grammars/source.mcfunction-snapshot.json +21388 -561
  72. data/grammars/source.mcfunction.json +55 -5
  73. data/grammars/source.meson.json +1 -1
  74. data/grammars/source.mlir.json +37 -317
  75. data/grammars/source.modula-3.json +10 -0
  76. data/grammars/source.msl.json +755 -0
  77. data/grammars/source.nasl.json +155 -0
  78. data/grammars/source.neon.json +381 -0
  79. data/grammars/source.nextflow.json +2 -2
  80. data/grammars/source.objc.platform.json +493 -35
  81. data/grammars/source.odin-ehr.json +806 -0
  82. data/grammars/source.odin.json +402 -0
  83. data/grammars/source.openbsd-pkg.contents.json +128 -0
  84. data/grammars/source.opts.json +12 -2
  85. data/grammars/source.perl6fe.json +1 -1
  86. data/grammars/source.postscript.json +358 -103
  87. data/grammars/source.prisma.json +435 -0
  88. data/grammars/source.purescript.json +29 -2
  89. data/grammars/source.python.json +52 -0
  90. data/grammars/source.q.json +150 -63
  91. data/grammars/source.qasm.json +66 -0
  92. data/grammars/source.ql.json +1408 -0
  93. data/grammars/source.r.json +4 -4
  94. data/grammars/source.reason.json +28 -16
  95. data/grammars/source.rego.json +124 -0
  96. data/grammars/source.sass.json +158 -3
  97. data/grammars/source.scala.json +53 -18
  98. data/grammars/source.sieve.json +383 -0
  99. data/grammars/source.solidity.json +1 -1
  100. data/grammars/source.ssh-config.json +1 -14
  101. data/grammars/source.swift.json +162 -2
  102. data/grammars/source.sy.json +2088 -183
  103. data/grammars/source.tags.json +266 -0
  104. data/grammars/source.terraform.json +576 -132
  105. data/grammars/source.tnsaudit.json +256 -0
  106. data/grammars/source.ts.json +246 -70
  107. data/grammars/source.tsx.json +247 -71
  108. data/grammars/source.v.json +587 -761
  109. data/grammars/source.vim-snippet.json +645 -0
  110. data/grammars/source.viml.json +6 -6
  111. data/grammars/source.webassembly.json +10 -0
  112. data/grammars/source.webidl.json +8 -0
  113. data/grammars/source.wgetrc.json +1640 -0
  114. data/grammars/source.wsd.json +781 -0
  115. data/grammars/source.x86.json +7 -3
  116. data/grammars/source.zig.json +231 -360
  117. data/grammars/text.dfy.dafny.json +188 -0
  118. data/grammars/text.html.php.blade.json +535 -528
  119. data/grammars/text.html.riot.json +788 -0
  120. data/grammars/text.muse.json +1471 -0
  121. data/grammars/text.openbsd-pkg.desc.json +78 -0
  122. data/grammars/text.roff.json +49 -1
  123. data/grammars/text.sfd.json +21 -0
  124. data/grammars/text.tex.latex.haskell.json +58 -11
  125. data/grammars/text.vim-help.json +383 -0
  126. data/grammars/text.xml.svg.json +8 -2
  127. data/grammars/version +1 -1
  128. data/lib/linguist/VERSION +1 -1
  129. data/lib/linguist/blob_helper.rb +4 -2
  130. data/lib/linguist/file_blob.rb +1 -1
  131. data/lib/linguist/generated.rb +96 -28
  132. data/lib/linguist/heuristics.yml +64 -4
  133. data/lib/linguist/languages.json +1 -1
  134. data/lib/linguist/languages.yml +408 -49
  135. data/lib/linguist/lazy_blob.rb +10 -10
  136. data/lib/linguist/linguist.bundle +0 -0
  137. data/lib/linguist/samples.json +48129 -31562
  138. data/lib/linguist/shebang.rb +5 -3
  139. data/lib/linguist/vendor.yml +71 -60
  140. metadata +48 -17
  141. data/grammars/source.LS.json +0 -85
  142. data/grammars/source.MCPOST.json +0 -54
  143. data/grammars/source.MOD.json +0 -55
  144. data/grammars/source.apt.json +0 -18
  145. data/grammars/source.jlex.json +0 -322
  146. data/grammars/source.yaml-ext.json +0 -324
  147. data/grammars/text.html.abl.json +0 -70
@@ -0,0 +1,78 @@
1
+ {
2
+ "name": "OpenBSD Package Description",
3
+ "scopeName": "text.openbsd-pkg.desc",
4
+ "patterns": [
5
+ {
6
+ "include": "#main"
7
+ }
8
+ ],
9
+ "repository": {
10
+ "field": {
11
+ "name": "meta.field.metadata.openbsd-pkg.desc",
12
+ "begin": "^([^\\s:]+(:))",
13
+ "end": "$",
14
+ "patterns": [
15
+ {
16
+ "name": "meta.email.openbsd-pkg.desc",
17
+ "match": "([^\\s\u003c\u003e][^\u003c\u003e]*)\\s*(\u003c)([^@\u003c\u003e]+@[^@\u003c\u003e]+)(\u003e)",
18
+ "captures": {
19
+ "1": {
20
+ "name": "entity.name.author.openbsd-pkg.desc"
21
+ },
22
+ "2": {
23
+ "name": "punctuation.definition.angle.bracket.begin.openbsd-pkg.desc"
24
+ },
25
+ "3": {
26
+ "name": "constant.other.reference.link.underline.mailto.url.openbsd-pkg.desc"
27
+ },
28
+ "4": {
29
+ "name": "punctuation.definition.angle.bracket.end.openbsd-pkg.desc"
30
+ }
31
+ }
32
+ },
33
+ {
34
+ "include": "etc#url"
35
+ },
36
+ {
37
+ "name": "string.unquoted.openbsd-pkg.desc",
38
+ "match": "\\S+"
39
+ }
40
+ ],
41
+ "beginCaptures": {
42
+ "1": {
43
+ "name": "entity.name.tag.field.openbsd-pkg.desc"
44
+ },
45
+ "2": {
46
+ "patterns": [
47
+ {
48
+ "include": "etc#kolon"
49
+ }
50
+ ]
51
+ }
52
+ }
53
+ },
54
+ "main": {
55
+ "patterns": [
56
+ {
57
+ "include": "#title"
58
+ },
59
+ {
60
+ "include": "#field"
61
+ },
62
+ {
63
+ "include": "#paragraph"
64
+ }
65
+ ]
66
+ },
67
+ "paragraph": {
68
+ "name": "markup.paragraph.openbsd-pkg.desc",
69
+ "begin": "^\\s*(?=\\S)(?!\\S)",
70
+ "end": "^\\s*$"
71
+ },
72
+ "title": {
73
+ "name": "markup.heading.title.openbsd-pkg.desc",
74
+ "begin": "\\A",
75
+ "end": "$"
76
+ }
77
+ }
78
+ }
@@ -3757,6 +3757,54 @@
3757
3757
  }
3758
3758
  }
3759
3759
  },
3760
+ {
3761
+ "name": "markup.heading.title.function.mdoc.macro.roff",
3762
+ "begin": "^([.'])\\s*(Dt)(?=\\s)",
3763
+ "end": "(?\u003c!\\\\)$",
3764
+ "patterns": [
3765
+ {
3766
+ "include": "#mdoc-delimiters"
3767
+ },
3768
+ {
3769
+ "include": "#mdoc-args"
3770
+ }
3771
+ ],
3772
+ "beginCaptures": {
3773
+ "0": {
3774
+ "name": "meta.function.$2.unparsed.macro.mdoc.roff"
3775
+ },
3776
+ "1": {
3777
+ "name": "punctuation.definition.macro.roff"
3778
+ },
3779
+ "2": {
3780
+ "name": "entity.name.function.roff"
3781
+ }
3782
+ }
3783
+ },
3784
+ {
3785
+ "name": "markup.heading.section.function.mdoc.macro.roff",
3786
+ "begin": "^([.'])\\s*(Sh)(?=\\s)",
3787
+ "end": "(?\u003c!\\\\)$",
3788
+ "patterns": [
3789
+ {
3790
+ "include": "#mdoc-callables"
3791
+ },
3792
+ {
3793
+ "include": "#mdoc-args"
3794
+ }
3795
+ ],
3796
+ "beginCaptures": {
3797
+ "0": {
3798
+ "name": "meta.function.$2.parsed.macro.mdoc.roff"
3799
+ },
3800
+ "1": {
3801
+ "name": "punctuation.definition.macro.roff"
3802
+ },
3803
+ "2": {
3804
+ "name": "entity.name.function.roff"
3805
+ }
3806
+ }
3807
+ },
3760
3808
  {
3761
3809
  "name": "meta.function.$2.unparsed.macro.mdoc.roff",
3762
3810
  "begin": "^([.'])\\s*(%[ABCDIJNOPQRTUV]|B[dfklt]|br|D[bdt]|E[dfklx]|F[do]|Hf|In|L[bp]|Nd|Os|Pp|R[esv]|Sm|sp|Ud)(?=\\s)",
@@ -5191,7 +5239,7 @@
5191
5239
  "patterns": [
5192
5240
  {
5193
5241
  "name": "meta.function.request.$2.gnu.roff",
5194
- "begin": "(?x) ^([.'])[ \\t]*\n(aln|als|asciify|backtrace|blm|boxa|box|brp|cflags|chop|close|composite|color\n|cp|devicem|device|do|ecs|ecr|evc|fam|fchar|fcolor|fschar|fspecial|ftr|fzoom\n|gcolor|hcode|hla|hlm|hpfa|hpfcode|hpf|hym|hys|itc|kern|length|linetabs|lsm\n|mso|nop|nroff|opena|open|output|pev|pnr|psbb|pso|ptr|pvs|rchar|rfschar|rj\n|rnn|schar|shc|shift|sizes|special|spreadwarn|sty|substring|tkf|tm1|tmc|trf\n|trin|trnt|troff|unformat|vpt|warnscale|warn|writec|writem|write)\n(?=\\s|\\\\E?[\"#])",
5242
+ "begin": "(?x) ^([.'])[ \\t]*\n(aln|als|asciify|backtrace|blm|boxa|box|brp|cflags|chop|close|composite|color\n|cp|devicem|device|do|ecs|ecr|evc|fam|fchar|fcolor|fschar|fspecial|ftr|fzoom\n|gcolor|hcode|hla|hlm|hpfa|hpfcode|hpf|hym|hys|itc|kern|length|linetabs|lsm\n|mso|nop|nroff|opena|open|output|pev|pnr|psbb|pso|ptr|pvs|rchar|rfschar|rj\n|rnn|schar|shc|shift|sizes|special|spreadwarn|stringdown|stringup|sty\n|substring|tkf|tm1|tmc|trf|trin|trnt|troff|unformat|vpt|warnscale|warn\n|writec|writem|write)\n(?=\\s|\\\\E?[\"#])",
5195
5243
  "end": "(?\u003c!\\\\)(?=\\R|$)|(?=\\\\E?\")",
5196
5244
  "patterns": [
5197
5245
  {
@@ -66,6 +66,24 @@
66
66
  "name": "constant.language.encoding.sfd",
67
67
  "match": "(?i)\\b(ISO[-\\w]+)(?\u003c=\\d)(?=\\s|$)"
68
68
  },
69
+ "gaspTable": {
70
+ "name": "meta.gasp-table.sfd",
71
+ "begin": "^(GaspTable)(:|(?=\\s))",
72
+ "end": "$",
73
+ "patterns": [
74
+ {
75
+ "include": "$self"
76
+ }
77
+ ],
78
+ "beginCaptures": {
79
+ "1": {
80
+ "name": "variable.other.property.sfd"
81
+ },
82
+ "2": {
83
+ "name": "punctuation.separator.dictionary.key-value.sfd"
84
+ }
85
+ }
86
+ },
69
87
  "header": {
70
88
  "name": "meta.header.sfd",
71
89
  "match": "^(SplineFontDB)(:)",
@@ -130,6 +148,9 @@
130
148
  {
131
149
  "include": "#comment"
132
150
  },
151
+ {
152
+ "include": "#gaspTable"
153
+ },
133
154
  {
134
155
  "include": "#property"
135
156
  },
@@ -297,7 +297,7 @@
297
297
  {
298
298
  "name": "meta.ctor.type-declaration.haskell",
299
299
  "contentName": "meta.type-signature.haskell",
300
- "begin": "^(?:\u003e|\u003c) ([ \\t]*)(?:(?:((?:[\\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{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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:[\\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{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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*))(?:\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))",
300
+ "begin": "^(?:\u003e|\u003c) ([ \\t]*)(?:(?:((?:[\\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{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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:[\\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{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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*))(?:\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))",
301
301
  "end": "^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )",
302
302
  "patterns": [
303
303
  {
@@ -332,6 +332,9 @@
332
332
  {
333
333
  "include": "#comments"
334
334
  },
335
+ {
336
+ "include": "#string"
337
+ },
335
338
  {
336
339
  "include": "#where"
337
340
  },
@@ -636,7 +639,7 @@
636
639
  {
637
640
  "name": "meta.function.type-declaration.haskell",
638
641
  "contentName": "meta.type-signature.haskell",
639
- "begin": "^(?:\u003e|\u003c) ([ \\t]*)(?:(?:((?:(?:[\\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}']*|(?:\\((?!--+\\))(?:(?:(?=[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\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}']*|(?:\\((?!--+\\))(?:(?:(?=[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))",
642
+ "begin": "^(?:\u003e|\u003c) ([ \\t]*)(?:(?:((?:(?:[\\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}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\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}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))",
640
643
  "end": "^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )|(?=(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))",
641
644
  "patterns": [
642
645
  {
@@ -858,7 +861,7 @@
858
861
  "patterns": [
859
862
  {
860
863
  "name": "entity.name.function.operator.haskell",
861
- "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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))",
864
+ "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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))",
862
865
  "captures": {
863
866
  "0": {
864
867
  "patterns": [
@@ -932,7 +935,7 @@
932
935
  {
933
936
  "name": "meta.function.type-declaration.haskell",
934
937
  "contentName": "meta.type-signature.haskell",
935
- "begin": "^(?:\u003e|\u003c) ([ \\t]*)(((?:(?:[\\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}']*|(?:\\((?!--+\\))(?:(?:(?=[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\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}']*|(?:\\((?!--+\\))(?:(?:(?=[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*))\\s*$",
938
+ "begin": "^(?:\u003e|\u003c) ([ \\t]*)(((?:(?:[\\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}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\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}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*))\\s*$",
936
939
  "end": "^(?!(?:\u003e|\u003c) \\1[ \\t]|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )",
937
940
  "patterns": [
938
941
  {
@@ -1074,9 +1077,12 @@
1074
1077
  {
1075
1078
  "include": "#comma"
1076
1079
  },
1080
+ {
1081
+ "include": "#infix_op"
1082
+ },
1077
1083
  {
1078
1084
  "name": "meta.other.constructor-list.haskell",
1079
- "begin": "(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))\\s*\\(",
1085
+ "begin": "\\(",
1080
1086
  "end": "\\)",
1081
1087
  "patterns": [
1082
1088
  {
@@ -1102,9 +1108,6 @@
1102
1108
  "include": "#infix_op"
1103
1109
  }
1104
1110
  ]
1105
- },
1106
- {
1107
- "include": "#infix_op"
1108
1111
  }
1109
1112
  ],
1110
1113
  "applyEndPatternLast": true
@@ -1246,8 +1249,8 @@
1246
1249
  {
1247
1250
  "name": "meta.record-field.type-declaration.haskell",
1248
1251
  "contentName": "meta.type-signature.haskell",
1249
- "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}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\))(?:(?:(?=[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\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}']*|(?:\\((?!--+\\))(?:(?:(?=[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))",
1250
- "end": "(?=(?:(?:((?:(?:[\\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}']*|(?:\\((?!--+\\))(?:(?:(?=[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\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}']*|(?:\\((?!--+\\))(?:(?:(?=[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))|})",
1252
+ "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}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\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}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))",
1253
+ "end": "(?=(?:(?:((?:(?:[\\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}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\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}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))|})",
1251
1254
  "patterns": [
1252
1255
  {
1253
1256
  "include": "#type_signature"
@@ -1339,7 +1342,7 @@
1339
1342
  "scoped_type_override": {
1340
1343
  "patterns": [
1341
1344
  {
1342
- "match": "^(?:\u003e|\u003c) ([ \\t]*)(?:(?:((?:(?:[\\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}']*|(?:\\((?!--+\\))(?:(?:(?=[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\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}']*|(?:\\((?!--+\\))(?:(?:(?=[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))((?:(?!{-|(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:--+)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))).|{-.*?-})*)((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))",
1345
+ "match": "^(?:\u003e|\u003c) ([ \\t]*)(?:(?:((?:(?:[\\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}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\)))(?:(?:\\s*,\\s*)(?:(?:[\\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}']*|(?:\\((?!--+\\)|\\.\\.\\))(?:(?:(?=[\\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{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))+\\))))*)\\s*((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))))((?:(?!{-|(?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:--+)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|]))))).|{-.*?-})*)((?:(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))(?:\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'\\|])))))",
1343
1346
  "captures": {
1344
1347
  "2": {
1345
1348
  "patterns": [
@@ -1707,6 +1710,12 @@
1707
1710
  {
1708
1711
  "include": "#via_list"
1709
1712
  },
1713
+ {
1714
+ "include": "#via_list_newline"
1715
+ },
1716
+ {
1717
+ "include": "#via_indent"
1718
+ },
1710
1719
  {
1711
1720
  "include": "#via_simple"
1712
1721
  },
@@ -1715,6 +1724,25 @@
1715
1724
  }
1716
1725
  ]
1717
1726
  },
1727
+ "via_indent": {
1728
+ "patterns": [
1729
+ {
1730
+ "name": "meta.via.haskell",
1731
+ "begin": "^(?:\u003e|\u003c) ([ \\t]*)(via)\\s*",
1732
+ "end": "^(?!(?:\u003e|\u003c) \\1|(?:\u003e|\u003c) [ \\t]*$)|^(?!(?:\u003e|\u003c) )",
1733
+ "patterns": [
1734
+ {
1735
+ "include": "#type_signature"
1736
+ }
1737
+ ],
1738
+ "beginCaptures": {
1739
+ "2": {
1740
+ "name": "keyword.other.haskell"
1741
+ }
1742
+ }
1743
+ }
1744
+ ]
1745
+ },
1718
1746
  "via_keyword": {
1719
1747
  "patterns": [
1720
1748
  {
@@ -1747,6 +1775,25 @@
1747
1775
  }
1748
1776
  ]
1749
1777
  },
1778
+ "via_list_newline": {
1779
+ "patterns": [
1780
+ {
1781
+ "name": "meta.via.haskell",
1782
+ "begin": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(via)\\s*",
1783
+ "end": "$",
1784
+ "patterns": [
1785
+ {
1786
+ "include": "#type_signature"
1787
+ }
1788
+ ],
1789
+ "beginCaptures": {
1790
+ "1": {
1791
+ "name": "keyword.other.haskell"
1792
+ }
1793
+ }
1794
+ }
1795
+ ]
1796
+ },
1750
1797
  "via_simple": {
1751
1798
  "patterns": [
1752
1799
  {
@@ -0,0 +1,383 @@
1
+ {
2
+ "name": "Vim Help",
3
+ "scopeName": "text.vim-help",
4
+ "patterns": [
5
+ {
6
+ "name": "meta.file-header.vim-help",
7
+ "match": "(?i)\\A(\\*[#-)!+-~]+\\*)[ \\t]+(For\\s+Vim\\s+version\\s*[\\d.]+)[ \\t]+Last\\s+changed?:\\s*(\\S.*?)\\s*$",
8
+ "captures": {
9
+ "1": {
10
+ "patterns": [
11
+ {
12
+ "include": "#tag"
13
+ }
14
+ ]
15
+ },
16
+ "2": {
17
+ "patterns": [
18
+ {
19
+ "include": "#vimVersion"
20
+ }
21
+ ]
22
+ },
23
+ "3": {
24
+ "name": "constant.numeric.date.last-changed.vim-help"
25
+ }
26
+ }
27
+ },
28
+ {
29
+ "include": "#main"
30
+ }
31
+ ],
32
+ "repository": {
33
+ "codeBlock": {
34
+ "name": "meta.example.vim-help",
35
+ "contentName": "markup.raw.code.verbatim.vim-help",
36
+ "begin": "(?:(?\u003c=\\s)|^)(\u003e)$",
37
+ "end": "^(\u003c)|(?=^\\S)",
38
+ "beginCaptures": {
39
+ "1": {
40
+ "name": "keyword.control.example.begin.vim-help"
41
+ }
42
+ },
43
+ "endCaptures": {
44
+ "1": {
45
+ "name": "keyword.control.example.end.vim-help"
46
+ }
47
+ }
48
+ },
49
+ "columnHeading": {
50
+ "name": "markup.heading.column-title.vim-help",
51
+ "match": "^\\s*\\S.*(~)$",
52
+ "captures": {
53
+ "1": {
54
+ "name": "keyword.operator.column-marker.tilde.vim-help"
55
+ }
56
+ }
57
+ },
58
+ "command": {
59
+ "name": "markup.raw.command.vim-help",
60
+ "match": "(`)([^` \\t]+)(`)",
61
+ "captures": {
62
+ "1": {
63
+ "name": "punctuation.definition.link.begin.vim-help"
64
+ },
65
+ "2": {
66
+ "patterns": [
67
+ {
68
+ "include": "source.viml"
69
+ }
70
+ ]
71
+ },
72
+ "3": {
73
+ "name": "punctuation.definition.link.end.vim-help"
74
+ }
75
+ }
76
+ },
77
+ "link": {
78
+ "name": "meta.link.vim-help",
79
+ "match": "(\\|)([^\"*|]+)(\\|)",
80
+ "captures": {
81
+ "1": {
82
+ "name": "meta.separator.punctuation.link.begin.vim-help"
83
+ },
84
+ "2": {
85
+ "name": "constant.other.link.vim-help"
86
+ },
87
+ "3": {
88
+ "name": "meta.separator.punctuation.link.end.vim-help"
89
+ }
90
+ }
91
+ },
92
+ "main": {
93
+ "patterns": [
94
+ {
95
+ "include": "#tag"
96
+ },
97
+ {
98
+ "include": "#link"
99
+ },
100
+ {
101
+ "include": "#special"
102
+ },
103
+ {
104
+ "include": "#option"
105
+ },
106
+ {
107
+ "include": "#command"
108
+ },
109
+ {
110
+ "include": "#codeBlock"
111
+ },
112
+ {
113
+ "include": "#manualTitle"
114
+ },
115
+ {
116
+ "include": "#columnHeading"
117
+ },
118
+ {
119
+ "include": "#sectionDelimiter"
120
+ },
121
+ {
122
+ "include": "#vimVersion"
123
+ },
124
+ {
125
+ "include": "#url"
126
+ },
127
+ {
128
+ "include": "#other"
129
+ }
130
+ ]
131
+ },
132
+ "manualTitle": {
133
+ "name": "markup.heading.manual-title.vim-help",
134
+ "match": "^[ \\t]+(VIM REFERENCE.*)\\s*$",
135
+ "captures": {
136
+ "1": {
137
+ "name": "constant.other.title-text.vim-help"
138
+ }
139
+ }
140
+ },
141
+ "option": {
142
+ "patterns": [
143
+ {
144
+ "name": "entity.name.tag.option.vim-help",
145
+ "match": "(')[a-z]{2,}(')",
146
+ "captures": {
147
+ "1": {
148
+ "name": "punctuation.definition.begin.option.vim-help"
149
+ },
150
+ "2": {
151
+ "name": "punctuation.definition.end.option.vim-help"
152
+ }
153
+ }
154
+ }
155
+ ]
156
+ },
157
+ "other": {
158
+ "patterns": [
159
+ {
160
+ "name": "markup.changed.${1:/downcase}.vim-help",
161
+ "match": "\\b(DEPRECATED|WARNING|(?:Deprecated|Warning)(?=:))(:|\\b)",
162
+ "captures": {
163
+ "2": {
164
+ "name": "keyword.operator.assignment.key-value.colon.vim-help"
165
+ }
166
+ }
167
+ },
168
+ {
169
+ "name": "invalid.illegal.error.vim-help",
170
+ "match": "\\t[* ]Error\\t+[a-z].*",
171
+ "captures": {
172
+ "1": {
173
+ "name": "punctuation.separator.list-item.marker.vim-help"
174
+ }
175
+ }
176
+ },
177
+ {
178
+ "name": "markup.ignored.todo.vim-help",
179
+ "match": "\\t[* ]Todo\\t+[a-z].*",
180
+ "captures": {
181
+ "1": {
182
+ "name": "punctuation.separator.list-item.marker.vim-help"
183
+ }
184
+ }
185
+ },
186
+ {
187
+ "name": "comment.line.vim-help",
188
+ "match": "\\t[* ](Comment)\\t+([a-z].*)",
189
+ "captures": {
190
+ "1": {
191
+ "name": "punctuation.separator.list-item.marker.vim-help"
192
+ }
193
+ }
194
+ },
195
+ {
196
+ "name": "constant.other.reference.link.vim-help",
197
+ "match": "\\t[* ]Underlined\\t+[a-z].*"
198
+ },
199
+ {
200
+ "name": "meta.${2:/downcase}-line.vim-help",
201
+ "match": "(?x) \\t (\\*|\\x20)\n(Boolean|Character|Conditional|Constant|Debug|Define|Delimiter\n|Exception|Float|Function|Identifier|Include|Keyword|Label|Macro\n|Number|Operator|PreCondit|PreProc|Repeat|SpecialChar\n|SpecialComment|Special|Statement|StorageClass|String\n|Structure|Tag|Typedef|Type)\n(\\t+ ([\"Aa-z].*))",
202
+ "captures": {
203
+ "1": {
204
+ "name": "punctuation.separator.list-item.marker.vim-help"
205
+ },
206
+ "2": {
207
+ "name": "storage.type.${2:/downcase}.vim-help"
208
+ },
209
+ "3": {
210
+ "name": "meta.output.vim-help"
211
+ },
212
+ "4": {
213
+ "name": "${2:/downcase}.vim-help"
214
+ }
215
+ }
216
+ }
217
+ ]
218
+ },
219
+ "sectionDelimiter": {
220
+ "name": "constant.other.section.delimiter.vim-help",
221
+ "match": "^===.*===$|^---.*--$"
222
+ },
223
+ "special": {
224
+ "patterns": [
225
+ {
226
+ "name": "entity.name.keyword.vim-help",
227
+ "match": "(\u003c)N(\u003e)",
228
+ "captures": {
229
+ "1": {
230
+ "name": "punctuation.definition.bracket.angle.begin.vim-help"
231
+ },
232
+ "2": {
233
+ "name": "punctuation.definition.bracket.angle.end.vim-help"
234
+ }
235
+ }
236
+ },
237
+ {
238
+ "name": "entity.name.keyword.vim-help",
239
+ "match": "(\u003c)N(?=\\.(?:$|\\s))",
240
+ "captures": {
241
+ "1": {
242
+ "name": "punctuation.definition.bracket.angle.begin.vim-help"
243
+ }
244
+ }
245
+ },
246
+ {
247
+ "name": "entity.name.keyword.vim-help",
248
+ "match": "(\\()N(\u003e)",
249
+ "captures": {
250
+ "1": {
251
+ "name": "punctuation.definition.bracket.round.begin.vim-help"
252
+ },
253
+ "2": {
254
+ "name": "punctuation.definition.bracket.angle.end.vim-help"
255
+ }
256
+ }
257
+ },
258
+ {
259
+ "name": "entity.name.keyword.vim-help",
260
+ "match": "(\\[)N(\\])",
261
+ "captures": {
262
+ "1": {
263
+ "name": "punctuation.definition.bracket.square.begin.vim-help"
264
+ },
265
+ "2": {
266
+ "name": "punctuation.definition.bracket.square.end.vim-help"
267
+ }
268
+ }
269
+ },
270
+ {
271
+ "match": "(N) (N)",
272
+ "captures": {
273
+ "1": {
274
+ "name": "entity.name.keyword.vim-help"
275
+ },
276
+ "2": {
277
+ "name": "entity.name.keyword.vim-help"
278
+ }
279
+ }
280
+ },
281
+ {
282
+ "name": "entity.name.keyword.vim-help",
283
+ "match": "N(?=th|-1)"
284
+ },
285
+ {
286
+ "name": "entity.name.keyword.vim-help",
287
+ "match": "({)[-a-zA-Z0-9'\"*+/:%#=\\[\\]\u003c\u003e.,]+(})",
288
+ "captures": {
289
+ "1": {
290
+ "name": "punctuation.definition.bracket.curly.begin.vim-help"
291
+ },
292
+ "2": {
293
+ "name": "punctuation.definition.bracket.curly.end.vim-help"
294
+ }
295
+ }
296
+ },
297
+ {
298
+ "name": "entity.name.keyword.vim-help",
299
+ "match": "(?\u003c=\\s)(\\[)[-a-z^A-Z0-9_]{2,}(\\])",
300
+ "captures": {
301
+ "1": {
302
+ "name": "punctuation.definition.bracket.square.begin.vim-help"
303
+ },
304
+ "2": {
305
+ "name": "punctuation.definition.bracket.square.end.vim-help"
306
+ }
307
+ }
308
+ },
309
+ {
310
+ "name": "entity.name.keyword.vim-help",
311
+ "match": "(\u003c)[-a-zA-Z0-9_]+(\u003e)",
312
+ "captures": {
313
+ "1": {
314
+ "name": "punctuation.definition.bracket.angle.begin.vim-help"
315
+ },
316
+ "2": {
317
+ "name": "punctuation.definition.bracket.angle.end.vim-help"
318
+ }
319
+ }
320
+ },
321
+ {
322
+ "name": "entity.name.keyword.vim-help",
323
+ "match": "(\u003c)[SCM]-.(\u003e)",
324
+ "captures": {
325
+ "1": {
326
+ "name": "punctuation.definition.bracket.angle.begin.vim-help"
327
+ },
328
+ "2": {
329
+ "name": "punctuation.definition.bracket.angle.end.vim-help"
330
+ }
331
+ }
332
+ },
333
+ {
334
+ "name": "entity.name.keyword.vim-help",
335
+ "match": "(\\[)(?:\\+\\+opt|[-+]?num|\\+?cmd|addr|arguments|arg|count|group|ident|line|offset|range)(\\])",
336
+ "captures": {
337
+ "1": {
338
+ "name": "punctuation.definition.bracket.square.begin.vim-help"
339
+ },
340
+ "2": {
341
+ "name": "punctuation.definition.bracket.square.end.vim-help"
342
+ }
343
+ }
344
+ },
345
+ {
346
+ "name": "entity.name.keyword.vim-help",
347
+ "match": "\\bCTRL(-)(?:.|Break|Del|Insert|PageDown|PageUp|({)char(}))",
348
+ "captures": {
349
+ "1": {
350
+ "name": "punctuation.delimiter.separator.dash.hyphen.vim-help"
351
+ },
352
+ "2": {
353
+ "name": "punctuation.definition.bracket.curly.begin.vim-help"
354
+ },
355
+ "3": {
356
+ "name": "punctuation.definition.bracket.curly.end.vim-help"
357
+ }
358
+ }
359
+ }
360
+ ]
361
+ },
362
+ "tag": {
363
+ "name": "storage.link.hypertext.vim-help",
364
+ "match": "(\\*)[#-)!+-~]+(\\*)(?=\\s|$)",
365
+ "captures": {
366
+ "1": {
367
+ "name": "punctuation.definition.begin.vim-help"
368
+ },
369
+ "2": {
370
+ "name": "punctuation.definition.end.vim-help"
371
+ }
372
+ }
373
+ },
374
+ "url": {
375
+ "name": "constant.other.reference.link.vim-help",
376
+ "match": "(?x)\n(?:(?:(?:https?|ftp|gopher)://|(?:mailto|file|news):)[^'\\x20\\t\u003c\u003e\"]+\n|(?:www|web|w3)[a-z0-9_-]*\\.[a-z0-9._-]+\\.[^'\\x20\\t\u003c\u003e\"]+)\n[a-zA-Z0-9/]"
377
+ },
378
+ "vimVersion": {
379
+ "name": "entity.other.vim-version.vim-help",
380
+ "match": "\\bVim version [0-9][0-9.a-z]*"
381
+ }
382
+ }
383
+ }