github-linguist 4.8.8 → 4.8.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/grammars/hint.haskell.json +1123 -0
  3. data/grammars/hint.message.haskell.json +1147 -0
  4. data/grammars/hint.type.haskell.json +1120 -0
  5. data/grammars/source.asn.json +59 -0
  6. data/grammars/source.blitzmax.json +0 -2
  7. data/grammars/source.bsl.json +372 -0
  8. data/grammars/source.c++.json +67 -0
  9. data/grammars/source.c2hs.json +27 -0
  10. data/grammars/source.cabal.json +66 -0
  11. data/grammars/source.coffee.json +6 -5
  12. data/grammars/source.crystal.json +0 -11
  13. data/grammars/source.csound-score.json +3 -3
  14. data/grammars/source.csound.json +51 -15
  15. data/grammars/source.css.json +1 -1
  16. data/grammars/source.css.less.json +9 -5
  17. data/grammars/source.cython.json +42 -193
  18. data/grammars/source.d.json +7 -7
  19. data/grammars/source.elixir.json +2 -2
  20. data/grammars/source.forth.json +0 -2
  21. data/grammars/source.graphql.json +8 -2
  22. data/grammars/source.haskell.json +1089 -323
  23. data/grammars/source.hsc2hs.json +12 -0
  24. data/grammars/source.ideal.json +356 -0
  25. data/grammars/source.java.json +3 -0
  26. data/grammars/source.js.json +262 -131
  27. data/grammars/source.js.jsx.json +848 -256
  28. data/grammars/source.lsl.json +51 -103
  29. data/grammars/source.objc.json +1 -1
  30. data/grammars/source.parrot.pir.json +49 -15
  31. data/grammars/source.pic.json +868 -0
  32. data/grammars/source.purescript.json +114 -90
  33. data/grammars/source.python.json +11 -9
  34. data/grammars/source.regexp.babel.json +1 -1
  35. data/grammars/source.renpy.json +7 -7
  36. data/grammars/source.rexx.json +59 -0
  37. data/grammars/source.sas.json +8 -75
  38. data/grammars/source.sdbl.json +97 -0
  39. data/grammars/source.shell.json +1 -0
  40. data/grammars/source.smali.json +2 -2
  41. data/grammars/source.sqf.json +11 -11
  42. data/grammars/source.stan.json +60 -25
  43. data/grammars/source.tla.json +18 -6
  44. data/grammars/source.toc.json +5 -1
  45. data/grammars/source.ts.json +134 -31
  46. data/grammars/source.tsx.json +134 -31
  47. data/grammars/source.vhdl.json +150 -117
  48. data/grammars/source.viml.json +4 -4
  49. data/grammars/source.xquery.json +23 -5
  50. data/grammars/source.yaml.json +35 -19
  51. data/grammars/text.html.handlebars.json +2 -2
  52. data/grammars/text.html.php.blade.json +1 -1
  53. data/grammars/text.html.twig.json +1 -4
  54. data/grammars/text.html.vue.json +41 -1
  55. data/grammars/text.restructuredtext.json +56 -1
  56. data/grammars/text.roff.json +5089 -0
  57. data/grammars/text.runoff.json +321 -0
  58. data/grammars/text.slim.json +126 -105
  59. data/grammars/text.tex.latex.haskell.json +1335 -21
  60. data/lib/linguist/heuristics.rb +8 -0
  61. data/lib/linguist/languages.json +1 -1
  62. data/lib/linguist/languages.yml +58 -3
  63. data/lib/linguist/samples.json +5257 -76
  64. data/lib/linguist/version.rb +1 -1
  65. metadata +16 -4
  66. data/grammars/source.man.json +0 -53
  67. data/grammars/text.groff.json +0 -113
@@ -14,7 +14,7 @@
14
14
  "operatorFun": "(?:\\((?!--+\\))[\\p{S}\\p{P}&&[^(),;\\[\\]`{}_\"']]+\\))",
15
15
  "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@\\[\\]\\\\\\^_]))",
16
16
  "classConstraint": "(?:(?:([\\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+)(?:(?<classConstraint>(?:[\\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}']*)(?:\\s*(?:\\s+)\\s*\\g<classConstraint>)?)))",
17
- "functionTypeDeclaration": "(?:(?:(?<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*\\g<functionTypeDeclaration>)?))(?:\\s*(::|∷ )))",
17
+ "functionTypeDeclaration": "([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\s*(::|∷)",
18
18
  "ctorArgs": "(?:[\\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}']*|(?:(?:[\\w()'→⇒\\[\\],]|->|=>)+\\s*)+)",
19
19
  "ctor": "(?:(?:\\b([\\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+)(?:(?<ctorArgs>(?:(?:[\\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}']*|(?:(?:[\\w()'→⇒\\[\\],]|->|=>)+\\s*)+))(?:\\s*(?:\\s+)\\s*\\g<ctorArgs>)?)?))",
20
20
  "typeDecl": ".+?",
@@ -35,33 +35,9 @@
35
35
  }
36
36
  }
37
37
  },
38
- {
39
- "begin": "(\\[)([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)(\\|)",
40
- "end": "(\\|)(\\])",
41
- "beginCaptures": {
42
- "1": {
43
- "name": "punctuation.definition.quasiquotes.begin.purescript"
44
- },
45
- "2": {
46
- "name": "entity.name.tag.purescript"
47
- },
48
- "3": {
49
- "name": "string.quoted.quasiquotes.purescript"
50
- }
51
- },
52
- "endCaptures": {
53
- "1": {
54
- "name": "string.quoted.quasiquotes.purescript"
55
- },
56
- "2": {
57
- "name": "punctuation.definition.quasiquotes.end.purescript"
58
- }
59
- },
60
- "contentName": "string.quoted.quasiquotes.purescript"
61
- },
62
38
  {
63
39
  "name": "meta.declaration.module.purescript",
64
- "begin": "\\b(module)\\b",
40
+ "begin": "\\b(module)(?!')\\b",
65
41
  "end": "(where)",
66
42
  "beginCaptures": {
67
43
  "1": {
@@ -91,7 +67,7 @@
91
67
  },
92
68
  {
93
69
  "name": "meta.declaration.typeclass.purescript",
94
- "begin": "\\b(class)\\b",
70
+ "begin": "\\b(class)(?!')\\b",
95
71
  "end": "\\b(where)\\b|$",
96
72
  "beginCaptures": {
97
73
  "1": {
@@ -111,7 +87,7 @@
111
87
  },
112
88
  {
113
89
  "name": "meta.declaration.instance.purescript",
114
- "begin": "\\b(instance)\\b",
90
+ "begin": "\\b(instance)(?!')\\b",
115
91
  "end": "\\b(where)\\b|$",
116
92
  "contentName": "meta.type-signature.purescript",
117
93
  "beginCaptures": {
@@ -131,10 +107,10 @@
131
107
  ]
132
108
  },
133
109
  {
134
- "name": "meta.foreign.purescript",
135
- "begin": "^(\\s*)(foreign)\\s+(import)\\s+(?:(?:(?<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*\\g<functionTypeDeclaration>)?))(?:\\s*(::|∷ )))?",
110
+ "name": "meta.foreign.data.purescript",
111
+ "begin": "^(\\s*)(foreign)\\s+(import)\\s+(data)\\s+([\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)",
136
112
  "end": "^(?!\\1[ \\t]|[ \\t]*$)",
137
- "contentName": "meta.type-signature.purescript",
113
+ "contentName": "meta.kind-signature.purescript",
138
114
  "beginCaptures": {
139
115
  "2": {
140
116
  "name": "keyword.other.purescript"
@@ -143,18 +119,44 @@
143
119
  "name": "keyword.other.purescript"
144
120
  },
145
121
  "4": {
146
- "patterns": [
147
- {
148
- "name": "entity.name.function.purescript",
149
- "match": "(?:[\\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}']*"
150
- }
151
- ]
122
+ "name": "keyword.other.purescript"
152
123
  },
153
124
  "5": {
125
+ "name": "entity.name.type.purescript"
126
+ },
127
+ "6": {
154
128
  "name": "keyword.other.double-colon.purescript"
155
129
  }
156
130
  },
157
131
  "patterns": [
132
+ {
133
+ "include": "#double_colon"
134
+ },
135
+ {
136
+ "include": "#kind_signature"
137
+ }
138
+ ]
139
+ },
140
+ {
141
+ "name": "meta.foreign.purescript",
142
+ "begin": "^(\\s*)(foreign)\\s+(import)\\s+([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)",
143
+ "end": "^(?!\\1[ \\t]|[ \\t]*$)",
144
+ "contentName": "meta.type-signature.purescript",
145
+ "beginCaptures": {
146
+ "2": {
147
+ "name": "keyword.other.purescript"
148
+ },
149
+ "3": {
150
+ "name": "keyword.other.purescript"
151
+ },
152
+ "4": {
153
+ "name": "entity.name.function.purescript"
154
+ }
155
+ },
156
+ "patterns": [
157
+ {
158
+ "include": "#double_colon"
159
+ },
158
160
  {
159
161
  "include": "#type_signature"
160
162
  }
@@ -162,8 +164,8 @@
162
164
  },
163
165
  {
164
166
  "name": "meta.import.purescript",
165
- "begin": "\\b(import)\\b",
166
- "end": "($|;|(?=--))",
167
+ "begin": "\\b(import)(?!')\\b",
168
+ "end": "($|(?=--))",
167
169
  "beginCaptures": {
168
170
  "1": {
169
171
  "name": "keyword.other.purescript"
@@ -177,7 +179,7 @@
177
179
  "include": "#module_exports"
178
180
  },
179
181
  {
180
- "match": "\\b(qualified|as|hiding)\\b",
182
+ "match": "\\b(as|hiding)\\b",
181
183
  "captures": {
182
184
  "1": {
183
185
  "name": "keyword.other.purescript"
@@ -306,24 +308,28 @@
306
308
  },
307
309
  {
308
310
  "name": "keyword.other.purescript",
309
- "match": "\\b(derive|where|data|type|newtype)\\b"
311
+ "match": "\\b(derive|where|data|type|newtype|infix[lr]?|foreign)(?!')\\b"
310
312
  },
311
313
  {
312
- "name": "storage.type.purescript",
313
- "match": "\\b(data|type|newtype)\\b"
314
+ "name": "entity.name.function.typed-hole.purescript",
315
+ "match": "\\?(?:[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*|[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)"
314
316
  },
315
317
  {
316
- "name": "keyword.operator.purescript",
317
- "match": "\\binfix[lr]?\\b"
318
+ "name": "storage.type.purescript",
319
+ "match": "\\b(data|type|newtype)(?!')\\b"
318
320
  },
319
321
  {
320
322
  "name": "keyword.control.purescript",
321
- "match": "\\b(do|if|then|else|case|of|let|in)\\b"
323
+ "match": "\\b(do|if|then|else|case|of|let|in)(?!')\\b"
322
324
  },
323
325
  {
324
326
  "name": "constant.numeric.float.purescript",
325
327
  "match": "\\b([0-9]+\\.[0-9]+([eE][+-]?[0-9]+)?|[0-9]+[eE][+-]?[0-9]+)\\b"
326
328
  },
329
+ {
330
+ "name": "constant.language.boolean.purescript",
331
+ "match": "\\b(true|false)\\b"
332
+ },
327
333
  {
328
334
  "name": "constant.numeric.purescript",
329
335
  "match": "\\b([0-9]+|0([xX][0-9a-fA-F]+|[oO][0-7]+))\\b"
@@ -433,20 +439,18 @@
433
439
  }
434
440
  },
435
441
  {
436
- "match": "(::|∷)((?:[\\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}']*|\\->|=>|[→⇒()\\[\\]]|\\s)*)",
437
- "captures": {
438
- "1": {
439
- "name": "keyword.other.double-colon.purescript"
440
- },
442
+ "begin": "^(\\s*)(?:(::|∷))",
443
+ "beginCaptures": {
441
444
  "2": {
442
- "name": "meta.type-signature.purescript",
443
- "patterns": [
444
- {
445
- "include": "#type_signature"
446
- }
447
- ]
445
+ "name": "keyword.other.double-colon.purescript"
448
446
  }
449
- }
447
+ },
448
+ "end": "^(?!\\1[ \\t]*|[ \\t]*$)",
449
+ "patterns": [
450
+ {
451
+ "include": "#type_signature"
452
+ }
453
+ ]
450
454
  },
451
455
  {
452
456
  "include": "#data_ctor"
@@ -474,18 +478,18 @@
474
478
  "block_comment": {
475
479
  "patterns": [
476
480
  {
477
- "name": "comment.block.haddock.purescript",
478
- "begin": "\\{-\\s*[|^]",
481
+ "name": "comment.block.documentation.purescript",
482
+ "begin": "\\{-\\s*\\|",
479
483
  "end": "-\\}",
480
484
  "applyEndPatternLast": 1,
481
485
  "beginCaptures": {
482
486
  "0": {
483
- "name": "punctuation.definition.comment.haddock.purescript"
487
+ "name": "punctuation.definition.comment.documentation.purescript"
484
488
  }
485
489
  },
486
490
  "endCaptures": {
487
491
  "0": {
488
- "name": "punctuation.definition.comment.haddock.purescript"
492
+ "name": "punctuation.definition.comment.documentation.purescript"
489
493
  }
490
494
  },
491
495
  "patterns": [
@@ -496,7 +500,7 @@
496
500
  },
497
501
  {
498
502
  "name": "comment.block.purescript",
499
- "begin": "\\{-(?!#)",
503
+ "begin": "\\{-",
500
504
  "end": "-\\}",
501
505
  "applyEndPatternLast": 1,
502
506
  "beginCaptures": {
@@ -515,7 +519,7 @@
515
519
  "comments": {
516
520
  "patterns": [
517
521
  {
518
- "begin": "(^[ \\t]+)?(?=--+\\s+[|^])",
522
+ "begin": "(^[ \\t]+)?(?=--+\\s+\\|)",
519
523
  "end": "(?!\\G)",
520
524
  "beginCaptures": {
521
525
  "1": {
@@ -524,15 +528,15 @@
524
528
  },
525
529
  "patterns": [
526
530
  {
527
- "name": "comment.line.double-dash.haddock.purescript",
528
- "begin": "(--+)\\s+([|^])",
531
+ "name": "comment.line.double-dash.documentation.purescript",
532
+ "begin": "(--+)\\s+(\\|)",
529
533
  "end": "\\n",
530
534
  "beginCaptures": {
531
535
  "1": {
532
536
  "name": "punctuation.definition.comment.purescript"
533
537
  },
534
538
  "2": {
535
- "name": "punctuation.definition.comment.haddock.purescript"
539
+ "name": "punctuation.definition.comment.documentation.purescript"
536
540
  }
537
541
  }
538
542
  }
@@ -637,26 +641,21 @@
637
641
  "patterns": [
638
642
  {
639
643
  "name": "meta.function.type-declaration.purescript",
640
- "begin": "(?:(?:^(\\s*))(?:(?:(?:(?<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*\\g<functionTypeDeclaration>)?))(?:\\s*(::|∷ ))))(?:(?!.*<-)))",
644
+ "begin": "^(\\s*)([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\s*(?:(::|∷)(?!.*<-))",
641
645
  "end": "^(?!\\1[ \\t]|[ \\t]*$)",
642
646
  "contentName": "meta.type-signature.purescript",
643
647
  "beginCaptures": {
644
648
  "2": {
645
- "patterns": [
646
- {
647
- "name": "entity.name.function.purescript",
648
- "match": "(?:[\\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}']*"
649
- },
650
- {
651
- "include": "#infix_op"
652
- }
653
- ]
649
+ "name": "entity.name.function.purescript"
654
650
  },
655
651
  "3": {
656
652
  "name": "keyword.other.double-colon.purescript"
657
653
  }
658
654
  },
659
655
  "patterns": [
656
+ {
657
+ "include": "#double_colon"
658
+ },
660
659
  {
661
660
  "include": "#type_signature"
662
661
  }
@@ -668,8 +667,8 @@
668
667
  "patterns": [
669
668
  {
670
669
  "name": "meta.record-field.type-declaration.purescript",
671
- "begin": "(?:(?:(?<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*\\g<functionTypeDeclaration>)?))(?:\\s*(::|∷ )))",
672
- "end": "(?=(?:(?:(?<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*\\g<functionTypeDeclaration>)?))(?:\\s*(::|∷ )))|})",
670
+ "begin": "([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\s*(::|∷)",
671
+ "end": "(?=([\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)\\s*(::|∷)|})",
673
672
  "contentName": "meta.type-signature.purescript",
674
673
  "beginCaptures": {
675
674
  "1": {
@@ -677,9 +676,6 @@
677
676
  {
678
677
  "name": "entity.other.attribute-name.purescript",
679
678
  "match": "(?:[\\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}']*"
680
- },
681
- {
682
- "include": "#infix_op"
683
679
  }
684
680
  ]
685
681
  },
@@ -695,11 +691,31 @@
695
691
  }
696
692
  ]
697
693
  },
694
+ "kind_signature": {
695
+ "patterns": [
696
+ {
697
+ "name": "keyword.other.star.purescript",
698
+ "match": "\\*"
699
+ },
700
+ {
701
+ "name": "keyword.other.exclaimation-point.purescript",
702
+ "match": "!"
703
+ },
704
+ {
705
+ "name": "keyword.other.pound-sign.purescript",
706
+ "match": "#"
707
+ },
708
+ {
709
+ "name": "keyword.other.arrow.purescript",
710
+ "match": "->|→"
711
+ }
712
+ ]
713
+ },
698
714
  "type_signature": {
699
715
  "patterns": [
700
716
  {
701
717
  "name": "meta.class-constraints.purescript",
702
- "match": "(?:(?:\\()(?:(?<classConstraints>(?:(?:(?:([\\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+)(?:(?<classConstraint>(?:[\\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}']*)(?:\\s*(?:\\s+)\\s*\\g<classConstraint>)?))))(?:\\s*(?:,)\\s*\\g<classConstraints>)?))(?:\\))(?:\\s*(=>|<=|⇒)))",
718
+ "match": "(?:(?:\\()(?:(?<classConstraints>(?:(?:(?:([\\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+)(?:(?<classConstraint>(?:[\\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}']*)(?:\\s*(?:\\s+)\\s*\\g<classConstraint>)?))))(?:\\s*(?:,)\\s*\\g<classConstraints>)?))(?:\\))(?:\\s*(=>|<=|⇐|⇒)))",
703
719
  "captures": {
704
720
  "1": {
705
721
  "patterns": [
@@ -715,7 +731,7 @@
715
731
  },
716
732
  {
717
733
  "name": "meta.class-constraints.purescript",
718
- "match": "((?:(?:([\\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+)(?:(?<classConstraint>(?:[\\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}']*)(?:\\s*(?:\\s+)\\s*\\g<classConstraint>)?))))\\s*(=>|<=|⇒)",
734
+ "match": "((?:(?:([\\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+)(?:(?<classConstraint>(?:[\\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}']*)(?:\\s*(?:\\s+)\\s*\\g<classConstraint>)?))))\\s*(=>|<=|⇐|⇒)",
719
735
  "captures": {
720
736
  "1": {
721
737
  "patterns": [
@@ -739,11 +755,11 @@
739
755
  },
740
756
  {
741
757
  "name": "keyword.other.big-arrow-left.purescript",
742
- "match": "<="
758
+ "match": "<=|⇐"
743
759
  },
744
760
  {
745
761
  "name": "keyword.other.forall.purescript",
746
- "match": "forall"
762
+ "match": "forall|∀"
747
763
  },
748
764
  {
749
765
  "include": "#generic_type"
@@ -760,7 +776,7 @@
760
776
  "patterns": [
761
777
  {
762
778
  "name": "entity.name.type.purescript",
763
- "match": "\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\b"
779
+ "match": "\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*"
764
780
  }
765
781
  ]
766
782
  },
@@ -768,7 +784,7 @@
768
784
  "patterns": [
769
785
  {
770
786
  "name": "entity.name.tag.purescript",
771
- "match": "\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\b"
787
+ "match": "\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*"
772
788
  }
773
789
  ]
774
790
  },
@@ -776,7 +792,15 @@
776
792
  "patterns": [
777
793
  {
778
794
  "name": "variable.other.generic-type.purescript",
779
- "match": "\\b(?:[\\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}']*\\b"
795
+ "match": "\\b(?:[\\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}']*"
796
+ }
797
+ ]
798
+ },
799
+ "double_colon": {
800
+ "patterns": [
801
+ {
802
+ "name": "keyword.other.double-colon.purescript",
803
+ "match": "(?:::|∷)"
780
804
  }
781
805
  ]
782
806
  },
@@ -790,7 +814,7 @@
790
814
  "patterns": [
791
815
  {
792
816
  "name": "entity.name.type.purescript",
793
- "match": "\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\b"
817
+ "match": "\\b[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*"
794
818
  }
795
819
  ]
796
820
  },
@@ -10,7 +10,9 @@
10
10
  "SConstruct",
11
11
  "Sconstruct",
12
12
  "sconstruct",
13
- "SConscript"
13
+ "SConscript",
14
+ "gyp",
15
+ "gypi"
14
16
  ],
15
17
  "first_line_match": "^#!/.*\\bpython[\\d\\.]*\\b",
16
18
  "firstLineMatch": "^#!/.*\\bpython[\\d\\.]*\\b",
@@ -1124,7 +1126,7 @@
1124
1126
  "function-declaration": {
1125
1127
  "name": "meta.function.python",
1126
1128
  "begin": "(?x)\n \\s*\n (?:\\b(async) \\s+)? \\b(def)\\s+\n (?=\n [[:alpha:]_][[:word:]]* \\s* \\(\n )\n",
1127
- "end": "(:)",
1129
+ "end": "(:|(?=[#'\"\\n]))",
1128
1130
  "beginCaptures": {
1129
1131
  "1": {
1130
1132
  "name": "storage.type.function.async.python"
@@ -1145,6 +1147,9 @@
1145
1147
  {
1146
1148
  "include": "#parameters"
1147
1149
  },
1150
+ {
1151
+ "include": "#line-continuation"
1152
+ },
1148
1153
  {
1149
1154
  "include": "#return-annotation"
1150
1155
  }
@@ -1196,7 +1201,7 @@
1196
1201
  "include": "#parameter-special"
1197
1202
  },
1198
1203
  {
1199
- "match": "([[:alpha:]_]\\w*)\\s*(?:(,)|(?=\\)))",
1204
+ "match": "(?x)\n ([[:alpha:]_]\\w*)\n \\s* (?: (,) | (?=[)#\\n=]))\n",
1200
1205
  "captures": {
1201
1206
  "1": {
1202
1207
  "name": "variable.parameter.function.language.python"
@@ -1210,7 +1215,7 @@
1210
1215
  "include": "#comments"
1211
1216
  },
1212
1217
  {
1213
- "include": "#parameter-with-default"
1218
+ "include": "#loose-default"
1214
1219
  },
1215
1220
  {
1216
1221
  "include": "#annotated-parameter"
@@ -1234,14 +1239,11 @@
1234
1239
  }
1235
1240
  }
1236
1241
  },
1237
- "parameter-with-default": {
1238
- "begin": "(?x)\n \\b\n ([[:alpha:]_]\\w*) \\s* (=)\n",
1242
+ "loose-default": {
1243
+ "begin": "(=)",
1239
1244
  "end": "(,)|(?=\\))",
1240
1245
  "beginCaptures": {
1241
1246
  "1": {
1242
- "name": "variable.parameter.function.language.python"
1243
- },
1244
- "2": {
1245
1247
  "name": "keyword.operator.python"
1246
1248
  }
1247
1249
  },