github-linguist 4.8.2 → 4.8.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -437,7 +437,7 @@
437
437
  ]
438
438
  },
439
439
  "disabled": {
440
- "begin": "^\\s*#\\s*(if|elseif)\\s*(!?defined)?\\b.*$",
440
+ "begin": "^\\s*#\\s*(if|elseif)\\s*(!?defined)?\\b[a-zA-Z0-9_]*$",
441
441
  "comment": "eat nested preprocessor if(def)s",
442
442
  "end": "^\\s*#\\s*endif\\b.*$",
443
443
  "patterns": [
@@ -663,7 +663,7 @@
663
663
  ]
664
664
  },
665
665
  "preprocessor-rule-other": {
666
- "begin": "^\\s*(#\\s*((if|elseif)\\s*(!?defined)?)\\b\\s*(.*?)(?:(?=(?://|/\\*))|$))",
666
+ "begin": "\\s(#\\s*((if|elseif)\\s*(!?defined)?)\\b\\s*(.*?)(?:(?=(?://|/\\*))|$))",
667
667
  "captures": {
668
668
  "1": {
669
669
  "name": "meta.preprocessor.macro.c"
@@ -671,7 +671,7 @@
671
671
  "2": {
672
672
  "name": "keyword.control.import.c"
673
673
  },
674
- "5": {
674
+ "3": {
675
675
  "name": "entity.name.function.preprocessor.c"
676
676
  }
677
677
  },
@@ -683,7 +683,7 @@
683
683
  ]
684
684
  },
685
685
  "preprocessor-rule-other-block": {
686
- "begin": "^\\s*(#\\s*((if|elseif)\\s*(!?defined)?)\\b\\s*(.*?)(?:(?=(?://|/\\*))|$))",
686
+ "begin": "^\\s*(#\\s*((if|elseif)\\s*(!?defined)?)\\b\\s*([a-zA-Z0-9_]*?)(?:(?=(?://|/\\*))|$))",
687
687
  "captures": {
688
688
  "1": {
689
689
  "name": "meta.preprocessor.macro.c"
@@ -682,13 +682,15 @@
682
682
  "name": "variable.other.perl6fe"
683
683
  },
684
684
  {
685
- "match": "(?x)\\b(?<![\\-:])( macro|sub|submethod|method |multi|proto|only|category )(?!\\-)\\b",
686
- "name": "storage.type.declare.routine.perl6fe"
687
- },
688
- {
689
- "begin": "(?x)(?<= macro|sub|submethod|method )(?!\\-)\\s+(!)?(?=\\w)",
685
+ "begin": "(?x)(?<![%$&@]|\\w) (multi\\s+)? (macro|sub|submethod|method|multi|proto|only|category)\\s+ (!)?(?=\\w)",
690
686
  "beginCaptures": {
691
687
  "1": {
688
+ "name": "storage.type.declarator.multi.perl6fe"
689
+ },
690
+ "2": {
691
+ "name": "storage.type.declarator.type.perl6fe"
692
+ },
693
+ "3": {
692
694
  "name": "support.class.method.private.perl6fe"
693
695
  }
694
696
  },
@@ -819,7 +821,7 @@
819
821
  "name": "constant.language.boolean.perl6fe"
820
822
  },
821
823
  {
822
- "match": "(?x)\\b(?<![\\-:])( fatal|internals|MONKEY\\-TYPING|nqp| strict|trace|worries|invocant|parameters| cur|soft|variables|attributes|v6|lib )(?!\\-)\\b",
824
+ "match": "(?x)\\b(?<![\\-:])( fatal|internals|MONKEY\\-TYPING|nqp| strict|trace|worries|invocant|parameters|experimental| cur|soft|variables|attributes|v6(?:\\.\\w)*|lib|Test|NativeCall )(?!\\-)\\b",
823
825
  "name": "constant.language.pragma.perl6fe"
824
826
  },
825
827
  {
@@ -831,7 +833,7 @@
831
833
  }
832
834
  },
833
835
  {
834
- "match": "(?x)\\b(?<!:)( AST|Any|Array|Associative|Attribute|Bag|BagHash|Baggy| Blob|Block|Bool|Callable|Capture|Channel|Code|Complex|Cool| CurrentThreadScheduler|Cursor|Date|DateTime|Dateish|Duration| Enum|FatRat|Grammar|Hash|IO|Instant|Iterable| Iterator|Junction|Label|List|Lock|Macro|Map|Match|Metamodel| Method|Mix|MixHash|Mixy|Mu|Nil|Num|Numeric|ObjAt|Pair|Parameter| Pod|Positional|PositionalBindFailover|Proc|Promise|Proxy| QuantHash|Range|Rat|Rational|Real|Regex|Routine|Scheduler|Seq| Set|SetHash|Setty|Signature|Slip|Stash|Str|Stringy|Sub| Submethod|Supply|Tap|Temporal|Thread|ThreadPoolScheduler| Variable|Version|Whatever|WhateverCode|bool|size_t| Int|int|int1|int2|int4|int8|int16|int32|int64| Rat|rat|rat1|rat2|rat4|rat8|rat16|rat32|rat64| Buf|buf|buf1|buf2|buf4|buf8|buf16|buf32|buf64| UInt|uint|uint1|uint2|uint4|uint8|uint16|uint32|uint64| utf8|utf16|utf32 )(?!\\:\\:)(?:\\:([DU]))?\\b",
836
+ "match": "(?x)\\b(?<!:)( AST|Any|Array|Associative|Attribute|Bag|BagHash|Baggy| Blob|Block|Bool|Callable|Capture|Channel|Code|Complex|Cool| CurrentThreadScheduler|Cursor|Date|DateTime|Dateish|Duration| Enum|FatRat|Grammar|Hash|IO|Instant|Iterable| Iterator|Junction|Label|List|Lock|Macro|Map|Match|Metamodel| Method|Mix|MixHash|Mixy|Mu|Nil|Numeric|ObjAt|Pair| Parameter|Pod|Positional|PositionalBindFailover|Proc|Promise| Proxy|QuantHash|Range|Rat|Rational|Real|Regex|Routine|Scheduler| Seq|Set|SetHash|Setty|Signature|Slip|Stash|Str|str|Stringy|Sub| Submethod|Supply|Tap|Temporal|Thread|ThreadPoolScheduler| Variable|Version|Whatever|WhateverCode|bool|size_t| Int|int|int1|int2|int4|int8|int16|int32|int64| Rat|rat|rat1|rat2|rat4|rat8|rat16|rat32|rat64| Buf|buf|buf1|buf2|buf4|buf8|buf16|buf32|buf64| UInt|uint|uint1|uint2|uint4|uint8|uint16|uint32|uint64| utf8|utf16|utf32|Num|num|num32|num64 )(?!\\:\\:)\\b",
835
837
  "captures": {
836
838
  "1": {
837
839
  "name": "support.type.perl6fe"
@@ -841,6 +843,18 @@
841
843
  }
842
844
  }
843
845
  },
846
+ {
847
+ "match": "(?<=\\w)(\\:)([DU_])\\b",
848
+ "name": "meta.adverb.definedness.perl6fe",
849
+ "captures": {
850
+ "1": {
851
+ "name": "keyword.operator.adverb.perl6fe"
852
+ },
853
+ "2": {
854
+ "name": "keyword.other.special-method.definedness.perl6fe"
855
+ }
856
+ }
857
+ },
844
858
  {
845
859
  "match": "(?x)\\b( div|mod|gcd|lcm|x|xx|temp|let|but|cmp|leg| eq|ne|gt|ge|lt|le|before|after|eqv|min|max|ff|fff|not|so|Z| and|andthen|or|orelse )\\b| \\b(X)(?!:)\\b",
846
860
  "name": "keyword.operator.word.perl6fe"
@@ -861,17 +875,36 @@
861
875
  "name": "meta.operator.non.ligature.perl6fe"
862
876
  },
863
877
  {
864
- "match": "(?x) <=> | => | -> | \\+\\| | \\+\\+ | -- | \\*\\* | \\?\\?\\? | \\?\\? | \\!\\!\\! | \\!\\! | && | \\+\\^ | \\?\\^ | %% | \\+& | \\+< | \\+> | \\+\\^ | \\.\\.(?!\\.) | \\.\\.\\^ | \\^\\.\\. | \\^\\.\\.\\^ | \\?\\| | !=(?!\\=) | !==(?!\\=) | <=(?!>) | >= | === | == | =:= | ~~ | \\x{2245} | \\|\\| | \\^\\^ | \\/\\/ | := | ::= | \\.\\.\\.",
878
+ "match": "(?x) <=> | => | --> | -> | \\+\\| | \\+\\+ | -- | \\*\\* | \\?\\?\\? | \\?\\? | \\!\\!\\! | \\!\\! | && | \\+\\^ | \\?\\^ | %% | \\+& | \\+< | \\+> | \\+\\^ | \\.\\.(?!\\.) | \\.\\.\\^ | \\^\\.\\. | \\^\\.\\.\\^ | \\?\\| | !=(?!\\=) | !==(?!\\=) | <=(?!>) | >= | === | == | =:= | ~~ | \\x{2245} | \\|\\| | \\^\\^ | \\/\\/ | := | ::= | \\.\\.\\.",
865
879
  "name": "keyword.operator.multi-symbol.perl6fe"
866
880
  },
867
881
  {
868
882
  "include": "#special_variables"
869
883
  },
884
+ {
885
+ "match": "(?x)(?<=\\[) \\s* (\\*) \\s* ([\\-\\*%\\^\\+\\/]|div|mod|gcd|lcm) \\s* (\\d+) \\s* (?=\\])",
886
+ "name": "meta.subscript.whatever.perl6fe",
887
+ "captures": {
888
+ "1": {
889
+ "name": "constant.language.whatever.perl6fe"
890
+ },
891
+ "2": {
892
+ "name": "keyword.operator.minus.back-from.perl6fe"
893
+ },
894
+ "3": {
895
+ "name": "constant.numeric.back-from.perl6fe"
896
+ }
897
+ }
898
+ },
899
+ {
900
+ "match": "\\*\\s*(?=\\])",
901
+ "name": "constant.language.whatever.hack.perl6fe"
902
+ },
870
903
  {
871
904
  "include": "#variables"
872
905
  },
873
906
  {
874
- "match": "(?x)\\b(?<![\\-:]|\\\\)( eager|hyper|substr|index|rindex|grep|map|sort|join|lines|hints |chmod|split|reduce|min|max|reverse|truncate|zip|cat|roundrobin |classify|first|sum|keys|values|pairs|defined|delete|exists |elems|end|kv|any|all|one|wrap|shape|key|value|name|pop|push |shift|splice|unshift|floor|ceiling|abs|exp|log|log10|rand|sign |sqrt|sin|cos|tan|round|strand|roots|cis|unpolar|polar|atan2 |pick|chop|chomp|lc|lcfirst|uc|ucfirst|capitalize |normalize|pack|unpack|quotemeta|comb|samecase|sameaccent|chars |nfd|nfc|nfkd|nfkc|printf|sprintf|caller|evalfile|run|runinstead |nothing|want|bless|chr|ord|gmtime|time|eof|localtime|gethost |getpw|chroot|getlogin|getpeername|kill|fork|wait|perl|graphs |codes|bytes|clone|print|open|read|write|readline|say|seek|close |opendir|readdir|slurp|spurt|shell|run|pos|fmt|vec|link|unlink |symlink|unique|pair|asin|atan|sec|cosec|cotan|asec|acosec|acotan |sinh|cosh|tanh|asinh|done|acos|acosh|atanh|sech|cosech|cotanh |sech|acosech|acotanh|asech|ok|nok|plan-ok|dies-ok|lives-ok|skip |todo|pass|flunk|force-todo|use-ok|isa-ok|diag|is-deeply|isnt |like|skip-rest|unlike|cmp-ok|eval-dies-ok|nok-error |eval-lives-ok|approx|is-approx|throws-ok|version-lt|plan|EVAL |succ|pred|times|nonce|once|signature|new|connect|operator|undef |undefine|sleep|from|to|infix|postfix|prefix|circumfix |postcircumfix|minmax|lazy|count|unwrap|getc|pi|tau|e|context|void |quasi|body|each|contains|rewinddir|subst|can|isa|flush|arity |assuming|rewind|callwith|callsame|nextwith|nextsame|attr |eval-elsewhere|none|srand|trim|trim-start|trim-end|lastcall |WHAT|WHY|WHERE|HOW|WHICH|VAR|WHO|WHENCE|ACCEPTS|REJECTS|not |iterator|by|re|im|invert|flip|gist|flat|tree|is-prime |throws-like|trans|race|hyper|tap|emit|done|quit|dd|note |starts-with|ends-with|put|append|tail|\\x{03C0}|\\x{03C4}|\\x{212F} )(?!\\-)\\b(?!\\s*=>)",
907
+ "match": "(?x)\\b(?<![\\-:]|\\\\)( eager|hyper|substr|index|rindex|grep|map|sort|join|lines|hints |chmod|split|reduce|min|max|reverse|truncate|zip|cat|roundrobin |classify|first|sum|keys|values|pairs|defined|delete|exists |elems|end|kv|any|all|one|wrap|shape|key|value|name|pop|push |shift|splice|unshift|floor|ceiling|abs|exp|log|log10|rand|sign |sqrt|sin|cos|tan|round|strand|roots|cis|unpolar|polar|atan2 |pick|chop|chomp|lc|lcfirst|uc|ucfirst|capitalize |normalize|pack|unpack|quotemeta|comb|samecase|sameaccent|chars |nfd|nfc|nfkd|nfkc|printf|sprintf|caller|evalfile|run|runinstead |nothing|want|bless|chr|ord|gmtime|time|eof|localtime|gethost |getpw|chroot|getlogin|getpeername|kill|fork|wait|perl|graphs |codes|bytes|clone|print|open|read|write|readline|say|seek|close |opendir|readdir|slurp|spurt|shell|run|pos|fmt|vec|link|unlink |symlink|unique|pair|asin|atan|sec|cosec|cotan|asec|acosec|acotan |sinh|cosh|tanh|asinh|done|acos|acosh|atanh|sech|cosech|cotanh |sech|acosech|acotanh|asech|ok|nok|plan-ok|dies-ok|lives-ok|skip |todo|pass|flunk|force-todo|use-ok|isa-ok|diag|is-deeply|isnt |like|skip-rest|unlike|cmp-ok|eval-dies-ok|nok-error |eval-lives-ok|approx|is-approx|throws-ok|version-lt|plan|EVAL |succ|pred|times|nonce|once|signature|new|connect|operator|undef |undefine|sleep|from|to|infix|postfix|prefix|circumfix |postcircumfix|minmax|lazy|count|unwrap|getc|pi|tau|e|context|void |quasi|body|each|contains|rewinddir|subst|can|isa|flush|arity |assuming|rewind|callwith|callsame|nextwith|nextsame|attr |eval-elsewhere|none|srand|trim|trim-start|trim-end|lastcall |WHAT|WHY|WHERE|HOW|WHICH|VAR|WHO|WHENCE|ACCEPTS|REJECTS|not |iterator|by|re|im|invert|flip|gist|flat|tree|is-prime |throws-like|trans|race|hyper|tap|emit|done-testing|quit|dd|note |starts-with|ends-with|put|append|tail|\\x{03C0}|\\x{03C4}|\\x{212F} )(?!\\-)\\b(?!\\s*=>)",
875
908
  "name": "support.function.perl6fe"
876
909
  },
877
910
  {
@@ -932,7 +965,7 @@
932
965
  "name": "constant.numeric.radix.perl6fe"
933
966
  },
934
967
  {
935
- "match": "(?x) (?<=[=,;\\^\\s\\{\\[\\(\\/]|\\.\\.) (?:[\\+\\-])? (?: \\d+ (?:[\\_\\d]+\\d)? ) (?: \\. \\d+ (?:[\\_\\d]+\\d)? )? (?: e \\d+ (?:[\\_\\d]+\\d)? )?",
968
+ "match": "(?x) (?<=[=,:;\\^\\s\\{\\[\\(\\/]|\\.\\.) (?:[\\+\\-])? (?: \\d+ (?:[\\_\\d]+\\d)? ) (?: \\. \\d+ (?:[\\_\\d]+\\d)? )? (?: e \\d+ (?:[\\_\\d]+\\d)? )?",
936
969
  "name": "constant.numeric.perl6fe"
937
970
  }
938
971
  ]
@@ -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": "(?:(?:(?<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*(::|∷ )))",
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": ".+?",
@@ -132,22 +132,31 @@
132
132
  },
133
133
  {
134
134
  "name": "meta.foreign.purescript",
135
- "begin": "^(\\s*)(foreign)\\s+(import)\\b",
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*(::|∷ )))?",
136
136
  "end": "^(?!\\1[ \\t]|[ \\t]*$)",
137
+ "contentName": "meta.type-signature.purescript",
137
138
  "beginCaptures": {
138
139
  "2": {
139
140
  "name": "keyword.other.purescript"
140
141
  },
141
142
  "3": {
142
143
  "name": "keyword.other.purescript"
144
+ },
145
+ "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
+ ]
152
+ },
153
+ "5": {
154
+ "name": "keyword.other.double-colon.purescript"
143
155
  }
144
156
  },
145
157
  "patterns": [
146
158
  {
147
159
  "include": "#type_signature"
148
- },
149
- {
150
- "include": "$self"
151
160
  }
152
161
  ]
153
162
  },
@@ -309,7 +318,7 @@
309
318
  },
310
319
  {
311
320
  "name": "keyword.control.purescript",
312
- "match": "\\b(do|if|then|else|case|of|let|in|default)\\b"
321
+ "match": "\\b(do|if|then|else|case|of|let|in)\\b"
313
322
  },
314
323
  {
315
324
  "name": "constant.numeric.float.purescript",
@@ -400,6 +409,45 @@
400
409
  {
401
410
  "include": "#function_type_declaration"
402
411
  },
412
+ {
413
+ "match": "\\((?<paren>(?:[^()]|\\(\\g<paren>\\))*)(::|∷)(?<paren2>(?:[^()]|\\(\\g<paren2>\\))*)\\)",
414
+ "captures": {
415
+ "1": {
416
+ "patterns": [
417
+ {
418
+ "include": "$self"
419
+ }
420
+ ]
421
+ },
422
+ "2": {
423
+ "name": "keyword.other.double-colon.purescript"
424
+ },
425
+ "3": {
426
+ "name": "meta.type-signature.purescript",
427
+ "patterns": [
428
+ {
429
+ "include": "#type_signature"
430
+ }
431
+ ]
432
+ }
433
+ }
434
+ },
435
+ {
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
+ },
441
+ "2": {
442
+ "name": "meta.type-signature.purescript",
443
+ "patterns": [
444
+ {
445
+ "include": "#type_signature"
446
+ }
447
+ ]
448
+ }
449
+ }
450
+ },
403
451
  {
404
452
  "include": "#data_ctor"
405
453
  },
@@ -589,7 +637,7 @@
589
637
  "patterns": [
590
638
  {
591
639
  "name": "meta.function.type-declaration.purescript",
592
- "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*(::|∷)))))",
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*(::|∷ ))))(?:(?!.*<-)))",
593
641
  "end": "^(?!\\1[ \\t]|[ \\t]*$)",
594
642
  "contentName": "meta.type-signature.purescript",
595
643
  "beginCaptures": {
@@ -620,8 +668,8 @@
620
668
  "patterns": [
621
669
  {
622
670
  "name": "meta.record-field.type-declaration.purescript",
623
- "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*(::|∷)))",
624
- "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*(::|∷)))|})",
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*(::|∷ )))|})",
625
673
  "contentName": "meta.type-signature.purescript",
626
674
  "beginCaptures": {
627
675
  "1": {
@@ -4,6 +4,32 @@
4
4
  "fileTypes": [
5
5
  "re"
6
6
  ],
7
+ "patterns": [
8
+ {
9
+ "include": "#anchor"
10
+ },
11
+ {
12
+ "include": "#backref"
13
+ },
14
+ {
15
+ "include": "#quantifier"
16
+ },
17
+ {
18
+ "include": "#operator"
19
+ },
20
+ {
21
+ "include": "#group-assertion"
22
+ },
23
+ {
24
+ "include": "#group-definition"
25
+ },
26
+ {
27
+ "include": "#character-class-definition"
28
+ },
29
+ {
30
+ "include": "#character-class"
31
+ }
32
+ ],
7
33
  "repository": {
8
34
  "character-class-definition": {
9
35
  "patterns": [
@@ -25,26 +51,35 @@
25
51
  }
26
52
  },
27
53
  "patterns": [
28
- {
29
- "include": "#character-class"
30
- },
31
54
  {
32
55
  "name": "constant.other.character-class.range.regexp",
33
- "match": "((\\\\[wWsSdD]|\\.)|(\\\\([trnvf0]|c[A-Z]|x[\\da-fA-F]{2}|u[\\da-fA-F]{4}|.)))\\-((\\\\[wWsSdD]|\\.)|(\\\\([trnvf0]|c[A-Z]|x[\\da-fA-F]{2}|u[\\da-fA-F]{4}|.)))",
56
+ "match": "((\\\\[wWsSdD]|\\.)|(\\\\([trnvf0]|c[A-Z]|x[\\da-fA-F]{2}|u[\\da-fA-F]{4}|u\\{[\\da-fA-F]+\\}|.)|([^\\]\\s])))(\\-)((\\\\[wWsSdD]|\\.)|(\\\\([trnvf0]|c[A-Z]|x[\\da-fA-F]{2}|u[\\da-fA-F]{4}|u\\{[\\da-fA-F]+\\}|.)|([^\\]\\s])))",
34
57
  "captures": {
35
58
  "2": {
36
- "name": "constant.other.character-class.escape.backslash.regexp"
59
+ "name": "constant.character.escape.backslash.regexp"
37
60
  },
38
61
  "3": {
39
62
  "name": "constant.character.escape.backslash.regexp"
40
63
  },
41
64
  "5": {
42
- "name": "constant.other.character-class.escape.backslash.regexp"
65
+ "name": "constant.character.regexp"
43
66
  },
44
67
  "6": {
68
+ "name": "punctuation.definition.range.regexp"
69
+ },
70
+ "8": {
45
71
  "name": "constant.character.escape.backslash.regexp"
72
+ },
73
+ "9": {
74
+ "name": "constant.character.escape.backslash.regexp"
75
+ },
76
+ "11": {
77
+ "name": "constant.character.regexp"
46
78
  }
47
79
  }
80
+ },
81
+ {
82
+ "include": "#character-class"
48
83
  }
49
84
  ]
50
85
  }
@@ -53,11 +88,6 @@
53
88
  "group-assertion": {
54
89
  "patterns": [
55
90
  {
56
- "patterns": [
57
- {
58
- "include": "$self"
59
- }
60
- ],
61
91
  "begin": "(\\()((\\?=)|(\\?!))",
62
92
  "end": "(\\))",
63
93
  "name": "meta.group.assertion.regexp",
@@ -79,7 +109,12 @@
79
109
  "4": {
80
110
  "name": "meta.assertion.negative-look-ahead.regexp"
81
111
  }
82
- }
112
+ },
113
+ "patterns": [
114
+ {
115
+ "include": "$self"
116
+ }
117
+ ]
83
118
  }
84
119
  ]
85
120
  },
@@ -102,11 +137,6 @@
102
137
  "group-definition": {
103
138
  "patterns": [
104
139
  {
105
- "patterns": [
106
- {
107
- "include": "$self"
108
- }
109
- ],
110
140
  "begin": "(\\()((\\?:))?",
111
141
  "end": "(\\))",
112
142
  "name": "meta.group.regexp",
@@ -128,7 +158,12 @@
128
158
  "6": {
129
159
  "name": "punctuation.definition.group.no-capture.regexp"
130
160
  }
131
- }
161
+ },
162
+ "patterns": [
163
+ {
164
+ "include": "$self"
165
+ }
166
+ ]
132
167
  }
133
168
  ]
134
169
  },
@@ -151,40 +186,18 @@
151
186
  "character-class": {
152
187
  "patterns": [
153
188
  {
154
- "name": "constant.other.character-class.escape.backslash.regexp",
155
- "match": "\\\\[wWsSdD]|\\."
189
+ "name": "constant.character.escape.backslash.regexp",
190
+ "match": "\\\\[wWsSdD]"
156
191
  },
157
192
  {
158
- "name": "constant.character.escape.backslash.regexp",
159
- "match": "\\\\([trnvf0\\\\]|c[A-Z]|x[\\da-fA-F]{2}|u[\\da-fA-F]{4}|.)"
193
+ "match": "(\\\\([trnvf0\\\\]|c[A-Z]|x[\\da-fA-F]{2}|u[\\da-fA-F]{4}|u\\{[\\da-fA-F]+\\}|.))",
194
+ "captures": {
195
+ "1": {
196
+ "name": "constant.character.escape.backslash.regexp"
197
+ }
198
+ }
160
199
  }
161
200
  ]
162
201
  }
163
- },
164
- "patterns": [
165
- {
166
- "include": "#anchor"
167
- },
168
- {
169
- "include": "#backref"
170
- },
171
- {
172
- "include": "#quantifier"
173
- },
174
- {
175
- "include": "#operator"
176
- },
177
- {
178
- "include": "#group-assertion"
179
- },
180
- {
181
- "include": "#group-definition"
182
- },
183
- {
184
- "include": "#character-class"
185
- },
186
- {
187
- "include": "#character-class-definition"
188
- }
189
- ]
202
+ }
190
203
  }
@@ -1428,6 +1428,44 @@
1428
1428
  }
1429
1429
  ]
1430
1430
  },
1431
+ {
1432
+ "begin": "(?=(?><<-(\"?)((?:[_\\w]+_|)GRAPHQL)\\b\\1))",
1433
+ "comment": "Heredoc with embedded GraphQL",
1434
+ "end": "(?!\\G)",
1435
+ "name": "meta.embedded.block.graphql",
1436
+ "patterns": [
1437
+ {
1438
+ "begin": "(?><<-(\"?)((?:[_\\w]+_|)GRAPHQL)\\b\\1)",
1439
+ "beginCaptures": {
1440
+ "0": {
1441
+ "name": "punctuation.definition.string.begin.ruby"
1442
+ }
1443
+ },
1444
+ "contentName": "source.graphql",
1445
+ "end": "\\s*\\2$\\n?",
1446
+ "endCaptures": {
1447
+ "0": {
1448
+ "name": "punctuation.definition.string.end.ruby"
1449
+ }
1450
+ },
1451
+ "name": "string.unquoted.heredoc.ruby",
1452
+ "patterns": [
1453
+ {
1454
+ "include": "#heredoc"
1455
+ },
1456
+ {
1457
+ "include": "#interpolated_ruby"
1458
+ },
1459
+ {
1460
+ "include": "source.graphql"
1461
+ },
1462
+ {
1463
+ "include": "#escaped_char"
1464
+ }
1465
+ ]
1466
+ }
1467
+ ]
1468
+ },
1431
1469
  {
1432
1470
  "begin": "(?>[=,]\\s*<<(\\w+))",
1433
1471
  "beginCaptures": {