github-linguist 5.2.0 → 5.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/grammars/annotation.liquidhaskell.haskell.json +1445 -0
  3. data/grammars/hint.haskell.json +134 -17
  4. data/grammars/hint.message.haskell.json +134 -17
  5. data/grammars/hint.type.haskell.json +134 -17
  6. data/grammars/source.abl.json +48 -48
  7. data/grammars/source.afm.json +8 -1
  8. data/grammars/source.angelscript.json +195 -0
  9. data/grammars/source.ats.json +128 -58
  10. data/grammars/source.awk.json +138 -138
  11. data/grammars/source.ballerina.json +434 -0
  12. data/grammars/source.chapel.json +1 -1
  13. data/grammars/source.clips.json +20 -20
  14. data/grammars/source.cobol.json +4 -3
  15. data/grammars/source.coffee.json +556 -109
  16. data/grammars/source.cs.json +10 -5
  17. data/grammars/source.csound-document.json +1 -1
  18. data/grammars/source.csound-score.json +9 -9
  19. data/grammars/source.csound.json +23 -28
  20. data/grammars/source.css.json +6 -5
  21. data/grammars/source.data-weave.json +1584 -0
  22. data/grammars/source.elixir.json +3 -61
  23. data/grammars/source.elm.json +88 -88
  24. data/grammars/source.emacs.lisp.json +12 -1
  25. data/grammars/source.haskell.json +134 -17
  26. data/grammars/source.hsig.json +1376 -0
  27. data/grammars/source.httpspec.json +128 -128
  28. data/grammars/source.jison.json +6 -14
  29. data/grammars/source.jisonlex.json +1 -9
  30. data/grammars/source.js.json +1 -0
  31. data/grammars/source.js.regexp.json +0 -4
  32. data/grammars/source.js.regexp.replacement.json +0 -4
  33. data/grammars/source.jsdoc.json +3 -3
  34. data/grammars/source.lsl.json +146 -53
  35. data/grammars/source.mercury.json +166 -166
  36. data/grammars/source.ne.json +108 -0
  37. data/grammars/source.nim_filter.json +51 -51
  38. data/grammars/source.nut.json +266 -0
  39. data/grammars/source.opal.json +112 -112
  40. data/grammars/source.opalsysdefs.json +16 -16
  41. data/grammars/source.pan.json +1 -1
  42. data/grammars/source.papyrus.skyrim.json +720 -720
  43. data/grammars/source.pawn.json +2 -2
  44. data/grammars/source.prolog.eclipse.json +42 -42
  45. data/grammars/source.prolog.json +41 -41
  46. data/grammars/source.purescript.json +41 -25
  47. data/grammars/source.python.json +47 -34
  48. data/grammars/source.racket.json +54 -54
  49. data/grammars/source.reason.json +37 -3
  50. data/grammars/source.regexp.python.json +31 -0
  51. data/grammars/source.ruby.gemfile.json +27 -0
  52. data/grammars/source.ruby.json +1057 -356
  53. data/grammars/source.rust.json +1 -1
  54. data/grammars/source.sbt.json +13 -3
  55. data/grammars/source.scala.json +74 -55
  56. data/grammars/source.shaderlab.json +1 -1
  57. data/grammars/source.shell.json +26 -21
  58. data/grammars/source.shen.json +91 -91
  59. data/grammars/source.sqf.json +1 -1
  60. data/grammars/source.supercollider.json +1 -1
  61. data/grammars/source.swift.json +4 -0
  62. data/grammars/source.terra.json +36 -37
  63. data/grammars/source.terraform.json +98 -98
  64. data/grammars/source.ts.json +2231 -1677
  65. data/grammars/source.tsx.json +142 -3520
  66. data/grammars/source.vbnet.json +201 -263
  67. data/grammars/source.viml.json +2 -2
  68. data/grammars/source.wdl.json +200 -0
  69. data/grammars/source.yaml.json +34 -16
  70. data/grammars/text.find-refs.json +3 -3
  71. data/grammars/text.haml.json +1 -1
  72. data/grammars/text.html.abl.json +6 -6
  73. data/grammars/text.html.erb.json +8 -11
  74. data/grammars/text.html.php.blade.json +256 -220
  75. data/grammars/text.html.vue.json +1 -1
  76. data/grammars/text.slim.json +31 -17
  77. data/grammars/text.tex.latex.haskell.json +150 -33
  78. data/lib/linguist/heuristics.rb +8 -0
  79. data/lib/linguist/languages.json +1 -1
  80. data/lib/linguist/languages.yml +82 -26
  81. data/lib/linguist/samples.json +134512 -132868
  82. data/lib/linguist/vendor.yml +3 -0
  83. data/lib/linguist/version.rb +1 -1
  84. metadata +13 -4
@@ -20,7 +20,8 @@
20
20
  "hexChar": "(?:\\\\x[0-9A-Fa-f]+)",
21
21
  "controlChar": "(?:\\\\\\^[A-Z@\\[\\]\\\\^_])",
22
22
  "character": "(?:[\\ -\\[\\]-~]|\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\\"'\\&])|(?:\\\\o[0-7]+)|(?:\\\\x[0-9A-Fa-f]+)|(?:\\\\\\^[A-Z@\\[\\]\\\\^_])|(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))",
23
- "functionTypeDeclaration": "(?:(?:((?:(?:[\\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{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\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{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\))))*))(?:\\s*((?<!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))))))",
23
+ "functionList": "((?:(?:[\\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{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\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{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\))))*)",
24
+ "functionTypeDeclaration": "(?:(?:((?:(?:[\\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{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\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{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\))))*)\\s*((?<!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))))))",
24
25
  "doubleColonOperator": "(?<!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))",
25
26
  "ctorTypeDeclaration": "(?:(?:((?:[\\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}](?<![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\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{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\))))*))(?:\\s*((?<!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))))))",
26
27
  "ctorArgs": "(?!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()'→⇒\\[\\],]|->|=>)+\\s*)+)",
@@ -96,7 +97,7 @@
96
97
  {
97
98
  "name": "comment.line.double-dash.haddock.haskell",
98
99
  "begin": "(--+)\\s+([|^])",
99
- "end": "\\n",
100
+ "end": "$",
100
101
  "beginCaptures": {
101
102
  "1": {
102
103
  "name": "punctuation.definition.comment.haskell"
@@ -115,7 +116,7 @@
115
116
  {
116
117
  "name": "comment.line.double-dash.haskell",
117
118
  "begin": "--",
118
- "end": "\\n",
119
+ "end": "$",
119
120
  "beginCaptures": {
120
121
  "0": {
121
122
  "name": "punctuation.definition.comment.haskell"
@@ -228,7 +229,7 @@
228
229
  "end": "#-\\}",
229
230
  "patterns": [
230
231
  {
231
- "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?<![\\p{Ll}_\\p{Lu}\\p{Lt}']))(NOTINLINE CONSTRUCTORLIKE|NOINLINE CONSTRUCTORLIKE|INLINE CONSTRUCTORLIKE|SPECIALISE NOTINLINE|SPECIALIZE NOTINLINE|SPECIALISE NOINLINE|SPECIALIZE NOINLINE|NOTINLINE CONLIKE|SPECIALISE INLINE|SPECIALIZE INLINE|NOINLINE CONLIKE|VECTORISE SCALAR|VECTORIZE SCALAR|OPTIONS_HADDOCK|INLINE CONLIKE|OPTIONS_DERIVE|OPTIONS_CATCH|OPTIONS_NHC98|OPTIONS_HUGS|OVERLAPPABLE|NOVECTORISE|NOVECTORIZE|OPTIONS_GHC|OPTIONS_JHC|OPTIONS_YHC|OVERLAPPING|DEPRECATED|INCOHERENT|INLINEABLE|SPECIALISE|SPECIALIZE|GENERATED|INLINABLE|NOTINLINE|VECTORISE|VECTORIZE|CONTRACT|LANGUAGE|NOINLINE|NOUNPACK|OVERLAPS|INCLUDE|MINIMAL|OPTIONS|WARNING|CFILES|INLINE|SOURCE|UNPACK|CTYPE|RULES|CORE|LINE|ANN|SCC)(?:(?<=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
232
+ "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?<![\\p{Ll}_\\p{Lu}\\p{Lt}']))((?i:NOTINLINE CONSTRUCTORLIKE|NOINLINE CONSTRUCTORLIKE|INLINE CONSTRUCTORLIKE|SPECIALISE NOTINLINE|SPECIALIZE NOTINLINE|SPECIALISE NOINLINE|SPECIALIZE NOINLINE|NOTINLINE CONLIKE|SPECIALISE INLINE|SPECIALIZE INLINE|NOINLINE CONLIKE|VECTORISE SCALAR|VECTORIZE SCALAR|OPTIONS_HADDOCK|INLINE CONLIKE|OPTIONS_DERIVE|OPTIONS_CATCH|OPTIONS_NHC98|OPTIONS_HUGS|OVERLAPPABLE|NOVECTORISE|NOVECTORIZE|OPTIONS_GHC|OPTIONS_JHC|OPTIONS_YHC|OVERLAPPING|DEPRECATED|INCOHERENT|INLINEABLE|SPECIALISE|SPECIALIZE|GENERATED|INLINABLE|NOTINLINE|VECTORISE|VECTORIZE|CONTRACT|LANGUAGE|NOINLINE|NOUNPACK|OVERLAPS|INCLUDE|MINIMAL|OPTIONS|WARNING|CFILES|INLINE|SOURCE|UNPACK|CTYPE|RULES|CORE|LINE|ANN|SCC))(?:(?<=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
232
233
  "name": "keyword.other.preprocessor.haskell"
233
234
  }
234
235
  ]
@@ -239,7 +240,7 @@
239
240
  "patterns": [
240
241
  {
241
242
  "name": "meta.function.type-declaration.haskell",
242
- "begin": "^([ \\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{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\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{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\))))*))(?:\\s*((?<!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))))))",
243
+ "begin": "^([ \\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{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\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{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\))))*)\\s*((?<!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))))))",
243
244
  "end": "^(?!\\1[ \\t]|[ \\t]*$)",
244
245
  "contentName": "meta.type-signature.haskell",
245
246
  "beginCaptures": {
@@ -265,6 +266,44 @@
265
266
  }
266
267
  ]
267
268
  },
269
+ "lazy_function_type_signature": {
270
+ "patterns": [
271
+ {
272
+ "name": "meta.function.type-declaration.haskell",
273
+ "begin": "^([ \\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{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\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{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\))))*))\\s*$",
274
+ "end": "^(?!\\1[ \\t]|[ \\t]*$)",
275
+ "contentName": "meta.type-signature.haskell",
276
+ "beginCaptures": {
277
+ "2": {
278
+ "patterns": [
279
+ {
280
+ "include": "#function_name"
281
+ },
282
+ {
283
+ "include": "#infix_op"
284
+ }
285
+ ]
286
+ }
287
+ },
288
+ "patterns": [
289
+ {
290
+ "include": "#double_colon_operator"
291
+ },
292
+ {
293
+ "include": "#type_signature"
294
+ }
295
+ ]
296
+ }
297
+ ]
298
+ },
299
+ "double_colon_operator": {
300
+ "patterns": [
301
+ {
302
+ "name": "keyword.other.double-colon.haskell",
303
+ "match": "(?<!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))"
304
+ }
305
+ ]
306
+ },
268
307
  "ctor_type_declaration": {
269
308
  "patterns": [
270
309
  {
@@ -299,8 +338,8 @@
299
338
  "patterns": [
300
339
  {
301
340
  "name": "meta.record-field.type-declaration.haskell",
302
- "begin": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?<![\\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{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\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{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\))))*))(?:\\s*((?<!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))))))",
303
- "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{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\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{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\))))*))(?:\\s*((?<!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))))))|})",
341
+ "begin": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?<![\\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{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\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{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\))))*)\\s*((?<!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))))))",
342
+ "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{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\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{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\))))*)\\s*((?<!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))))))|})",
304
343
  "contentName": "meta.type-signature.haskell",
305
344
  "beginCaptures": {
306
345
  "1": {
@@ -467,14 +506,19 @@
467
506
  "quasi_quotes": {
468
507
  "patterns": [
469
508
  {
470
- "begin": "(\\[)([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(\\|)",
509
+ "begin": "(\\[)((?:[\\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}']*)(\\|)",
471
510
  "end": "(\\|)(\\])",
472
511
  "beginCaptures": {
473
512
  "1": {
474
513
  "name": "punctuation.definition.quasiquotes.begin.haskell"
475
514
  },
476
515
  "2": {
477
- "name": "entity.name.tag.haskell"
516
+ "name": "entity.name.tag.haskell",
517
+ "patterns": [
518
+ {
519
+ "include": "#module_name_prefix"
520
+ }
521
+ ]
478
522
  }
479
523
  },
480
524
  "endCaptures": {
@@ -519,6 +563,39 @@
519
563
  }
520
564
  ]
521
565
  },
566
+ "hsig_decl": {
567
+ "patterns": [
568
+ {
569
+ "name": "meta.declaration.module.haskell",
570
+ "begin": "^([ \\t]*)(signature)(?:(?<=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
571
+ "end": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?<![\\p{Ll}_\\p{Lu}\\p{Lt}']))(where)(?:(?<=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))|^(?!\\1[ \\t]|[ \\t]*$)",
572
+ "beginCaptures": {
573
+ "2": {
574
+ "name": "keyword.other.haskell"
575
+ }
576
+ },
577
+ "endCaptures": {
578
+ "1": {
579
+ "name": "keyword.other.haskell"
580
+ }
581
+ },
582
+ "patterns": [
583
+ {
584
+ "include": "#comments"
585
+ },
586
+ {
587
+ "include": "#module_name"
588
+ },
589
+ {
590
+ "include": "#module_exports"
591
+ },
592
+ {
593
+ "include": "#invalid"
594
+ }
595
+ ]
596
+ }
597
+ ]
598
+ },
522
599
  "class_decl": {
523
600
  "patterns": [
524
601
  {
@@ -816,7 +893,7 @@
816
893
  {
817
894
  "name": "meta.preprocessor.c.haskell",
818
895
  "begin": "^(?=#)",
819
- "end": "(?<!\\\\)(?=\\n)",
896
+ "end": "(?<!\\\\)(?=$)",
820
897
  "patterns": [
821
898
  {
822
899
  "include": "source.c"
@@ -934,7 +1011,7 @@
934
1011
  "scoped_type_override": {
935
1012
  "patterns": [
936
1013
  {
937
- "match": "^([ \\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{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\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{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\))))*))(?:\\s*((?<!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))))))(.*)(?<!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(<-|=)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))",
1014
+ "match": "^([ \\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{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\)))(?:(?:\\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{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))+\\))))*)\\s*((?<!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"']))))))(.*)(?<!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))(<-|=)(?!(?:[\\p{S}\\p{P}](?<![(),;\\[\\]`{}_\"'])))",
938
1015
  "captures": {
939
1016
  "2": {
940
1017
  "patterns": [
@@ -1132,7 +1209,7 @@
1132
1209
  "end": "@-\\}",
1133
1210
  "patterns": [
1134
1211
  {
1135
- "include": "#haskell_expr"
1212
+ "include": "annotation.liquidhaskell.haskell"
1136
1213
  }
1137
1214
  ]
1138
1215
  }
@@ -1201,11 +1278,8 @@
1201
1278
  }
1202
1279
  ]
1203
1280
  },
1204
- "haskell_toplevel": {
1281
+ "common_toplevel": {
1205
1282
  "patterns": [
1206
- {
1207
- "include": "#liquidhaskell_annotation"
1208
- },
1209
1283
  {
1210
1284
  "include": "#class_decl"
1211
1285
  },
@@ -1229,18 +1303,51 @@
1229
1303
  },
1230
1304
  {
1231
1305
  "include": "#c_preprocessor"
1232
- },
1306
+ }
1307
+ ]
1308
+ },
1309
+ "function_type_declaration_with_scoped_type": {
1310
+ "patterns": [
1233
1311
  {
1234
1312
  "include": "#scoped_type_override"
1235
1313
  },
1236
1314
  {
1237
1315
  "include": "#function_type_declaration"
1316
+ }
1317
+ ]
1318
+ },
1319
+ "haskell_toplevel": {
1320
+ "patterns": [
1321
+ {
1322
+ "include": "#liquidhaskell_annotation"
1323
+ },
1324
+ {
1325
+ "include": "#common_toplevel"
1326
+ },
1327
+ {
1328
+ "include": "#function_type_declaration_with_scoped_type"
1238
1329
  },
1239
1330
  {
1240
1331
  "include": "#haskell_expr"
1241
1332
  }
1242
1333
  ]
1243
1334
  },
1335
+ "hsig_toplevel": {
1336
+ "patterns": [
1337
+ {
1338
+ "include": "#common_toplevel"
1339
+ },
1340
+ {
1341
+ "include": "#function_type_declaration"
1342
+ },
1343
+ {
1344
+ "include": "#lazy_function_type_signature"
1345
+ },
1346
+ {
1347
+ "include": "#comments"
1348
+ }
1349
+ ]
1350
+ },
1244
1351
  "haskell_source": {
1245
1352
  "patterns": [
1246
1353
  {
@@ -1253,6 +1360,16 @@
1253
1360
  "include": "#haskell_toplevel"
1254
1361
  }
1255
1362
  ]
1363
+ },
1364
+ "hsig_source": {
1365
+ "patterns": [
1366
+ {
1367
+ "include": "#hsig_decl"
1368
+ },
1369
+ {
1370
+ "include": "#hsig_toplevel"
1371
+ }
1372
+ ]
1256
1373
  }
1257
1374
  }
1258
1375
  }
@@ -1,60 +1,63 @@
1
1
  {
2
+ "name": "OpenEdge ABL",
3
+ "scopeName": "source.abl",
2
4
  "fileTypes": [
3
5
  "w",
4
6
  "p",
5
7
  "i"
6
8
  ],
7
- "name": "OpenEdge ABL",
9
+ "uuid": "075bb86e-03ea-4fea-bac0-e11b9dc73e03",
8
10
  "patterns": [
9
11
  {
12
+ "name": "comment.block.source.abl",
10
13
  "begin": "/\\*",
11
- "end": "\\*/(?![^/]*?\\*/)",
12
- "name": "comment.block.source.abl"
14
+ "end": "\\*/(?![^/]*?\\*/)"
13
15
  },
14
16
  {
15
17
  "match": "('(?:'|.)*?')",
16
18
  "name": "string.single.source.abl"
17
19
  },
18
20
  {
19
- "match": "\\\"\\\"[a-zA-Z0-9_\\.\\-]+\\\"\\\"",
20
- "name": "string.double.source.abl"
21
+ "name": "string.double.source.abl",
22
+ "match": "\\\"\\\"[a-zA-Z0-9_\\.\\-]+\\\"\\\""
21
23
  },
22
24
  {
25
+ "name": "string.double.complex.abl",
23
26
  "begin": "(\\\"(?!\\\"[a-zA-Z]+)|\\\"\\\"[a-zA-Z]+)",
24
27
  "end": "\\\"(?!\\\")",
25
- "name": "string.double.complex.abl",
26
28
  "patterns": [
27
29
  {
28
- "match": "(~(x\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)|\\\"\\\")",
29
- "name": "constant.character.escape.abl"
30
+ "name": "constant.character.escape.abl",
31
+ "match": "(~(x\\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)|\\\"\\\")"
30
32
  }
31
33
  ]
32
34
  },
33
35
  {
34
- "match": "(?<!\\w)((0(x|X)[0-9a-fA-F]+)|([0-9]+(\\.[0-9]+)?))",
35
- "name": "constant.numeric.source.abl"
36
+ "name": "constant.numeric.source.abl",
37
+ "match": "(?<!\\w)((0(x|X)[0-9a-fA-F]+)|([0-9]+(\\.[0-9]+)?))"
36
38
  },
37
39
  {
38
- "match": "(?i)\\b(true|false|yes|no(?!-))\\b",
39
- "name": "constant.language.source.abl"
40
+ "name": "constant.language.source.abl",
41
+ "match": "(?i)\\b(true|false|yes|no(?!-))\\b"
40
42
  },
41
43
  {
42
- "match": "(?i)(\\b(or|and|not|is)\\b|(=|\\+| - |/|<|>|,|\\.))",
43
- "name": "keyword.operator.source.abl"
44
+ "name": "keyword.operator.source.abl",
45
+ "match": "(?i)(\\b(or|and|not|is)\\b|(=|\\+| - |/|<|>|,|\\.))"
44
46
  },
45
47
  {
46
- "match": "(?i)(\\b(return|function|return(s)?|forward|input|output|like|new|no-undo|no-box|no-labels|(share|no|exclusive)-lock|no-error|format|colon|label|init(ial)?|side-labels|width|primary|use-index)\\b|@)",
47
- "name": "keyword.option.source.abl"
48
+ "name": "keyword.option.source.abl",
49
+ "match": "(?i)(\\b(return|function|return(s)?|forward|input|output|like|new|no-undo|no-box|no-labels|(share|no|exclusive)-lock|no-error|format|colon|label|init(ial)?|side-labels|width|primary|use-index)\\b|@)"
48
50
  },
49
51
  {
50
- "match": "(?i)\\b(disp(lay)?|for|do|repeat|delete|create|update|empty|assign|import( unformatted)?|input\\s+(from|close)|with|skip)\\b",
51
- "name": "keyword.statement.source.abl"
52
+ "name": "keyword.statement.source.abl",
53
+ "match": "(?i)\\b(disp(lay)?|for|do|repeat|delete|create|update|empty|assign|import( unformatted)?|input\\s+(from|close)|with|skip)\\b"
52
54
  },
53
55
  {
54
- "match": "(?i)\\b(as|for(?!\\s+(each|first|last)))\\b",
55
- "name": "keyword.type.source.abl"
56
+ "name": "keyword.type.source.abl",
57
+ "match": "(?i)\\b(as|for(?!\\s+(each|first|last)))\\b"
56
58
  },
57
59
  {
60
+ "match": "(?i)\\b(like)\\s+([a-zA-Z0-9_\\.-]+),",
58
61
  "captures": {
59
62
  "1": {
60
63
  "name": "keyword.type.source.abl"
@@ -62,35 +65,36 @@
62
65
  "2": {
63
66
  "name": "storage.type.source.abl"
64
67
  }
65
- },
66
- "match": "(?i)\\b(like)\\s+([a-zA-Z0-9_\\.-]+),"
68
+ }
67
69
  },
68
70
  {
69
- "match": "(?i)(\\b(if|avail(able)?|down|where|else( if)?|each|first|last|while|find( first|last)?|then( do( transaction)?)?|next|page|quit)\\b|(?<!-)(\\bend\\b(?!\\s+procedure)))",
70
- "name": "keyword.control.source.abl"
71
+ "name": "keyword.control.source.abl",
72
+ "match": "(?i)(\\b(if|avail(able)?|down|where|else( if)?|each|first|last|while|find( first|last)?|then( do( transaction)?)?|next|page|quit)\\b|(?<!-)(\\bend\\b(?!\\s+procedure)))"
71
73
  },
72
74
  {
73
- "match": "(?i)\\b(def(ine)?\\s+(((new\\s+)?shared\\s+)?(var(iable)?|stream|buffer)|((input|input-output|output)\\s+param(eter)?)|temp-table|query)|form)\\b",
74
- "name": "storage.type.define.abl"
75
+ "name": "storage.type.define.abl",
76
+ "match": "(?i)\\b(def(ine)?\\s+(((new\\s+)?shared\\s+)?(var(iable)?|stream|buffer)|((input|input-output|output)\\s+param(eter)?)|temp-table|query)|form)\\b"
75
77
  },
76
78
  {
77
- "match": "(?i)\\b(?<!&)(char(acter)?|(?<!-)handle|dataset(-handle)?|field|(?<!-)index|log(ical)?|int(eger|64)?|dec(imal)?|stream|temp-table|frame [a-z]+)(?!\\s*\\()\\b",
78
- "name": "storage.type.source.abl"
79
+ "name": "storage.type.source.abl",
80
+ "match": "(?i)\\b(?<!&)(char(acter)?|(?<!-)handle|dataset(-handle)?|field|(?<!-)index|log(ical)?|int(eger|64)?|dec(imal)?|stream|temp-table|frame [a-z]+)(?!\\s*\\()\\b"
79
81
  },
80
82
  {
81
- "match": "(?i)(end (procedure|function))",
82
- "name": "storage.type.function.abl"
83
+ "name": "storage.type.function.abl",
84
+ "match": "(?i)(end (procedure|function))"
83
85
  },
84
86
  {
87
+ "name": "support.function.abl",
88
+ "match": "(?i)(\\b[a-z][a-z0-9_-]*?\\b\\s*)(?=\\s*\\(.*?\\))",
85
89
  "captures": {
86
90
  "1": {
87
91
  "name": "support.function.source.abl"
88
92
  }
89
- },
90
- "match": "(?i)(\\b[a-z][a-z0-9_-]*?\\b\\s*)(?=\\s*\\(.*?\\))",
91
- "name": "support.function.abl"
93
+ }
92
94
  },
93
95
  {
96
+ "name": "support.function.abl",
97
+ "match": "(?i)\\b(run) ([a-z][a-z0-9_-]*)\\b(\\s*\\(.*?\\))?",
94
98
  "captures": {
95
99
  "1": {
96
100
  "name": "keyword.statement.source.abl"
@@ -98,11 +102,11 @@
98
102
  "2": {
99
103
  "name": "support.function.source.abl"
100
104
  }
101
- },
102
- "match": "(?i)\\b(run) ([a-z][a-z0-9_-]*)\\b(\\s*\\(.*?\\))?",
103
- "name": "support.function.abl"
105
+ }
104
106
  },
105
107
  {
108
+ "name": "meta.function.source.abl",
109
+ "match": "(?i)(procedure)\\s+([a-z0-9_-]+)",
106
110
  "captures": {
107
111
  "1": {
108
112
  "name": "storage.type.function.abl"
@@ -110,29 +114,25 @@
110
114
  "2": {
111
115
  "name": "entity.name.function.abl"
112
116
  }
113
- },
114
- "match": "(?i)(procedure)\\s+([a-z0-9_-]+)",
115
- "name": "meta.function.source.abl"
117
+ }
116
118
  },
117
119
  {
120
+ "name": "meta.function.bracket.abl",
121
+ "match": "(?i)(\\{[a-z0-9_\\./-]+)",
118
122
  "captures": {
119
123
  "1": {
120
124
  "name": "support.function.source.abl"
121
125
  }
122
- },
123
- "match": "(?i)(\\{[a-z0-9_\\./-]+)",
124
- "name": "meta.function.bracket.abl"
126
+ }
125
127
  },
126
128
  {
129
+ "name": "meta.function.bracket.abl",
130
+ "match": "\\}",
127
131
  "captures": {
128
132
  "0": {
129
133
  "name": "support.function.source.abl"
130
134
  }
131
- },
132
- "match": "\\}",
133
- "name": "meta.function.bracket.abl"
135
+ }
134
136
  }
135
- ],
136
- "scopeName": "source.abl",
137
- "uuid": "075bb86e-03ea-4fea-bac0-e11b9dc73e03"
137
+ ]
138
138
  }