github-linguist 6.0.1 → 6.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/grammars/annotation.liquidhaskell.haskell.json +13 -4
  3. data/grammars/hint.haskell.json +13 -4
  4. data/grammars/hint.message.haskell.json +13 -4
  5. data/grammars/hint.type.haskell.json +13 -4
  6. data/grammars/source.angelscript.json +1 -1
  7. data/grammars/source.ballerina.json +25 -2
  8. data/grammars/source.batchfile.json +69 -38
  9. data/grammars/source.c.json +1 -1
  10. data/grammars/source.clarion.json +4 -4
  11. data/grammars/source.cs.json +3952 -780
  12. data/grammars/source.elixir.json +7 -7
  13. data/grammars/source.fortran.json +38 -35
  14. data/grammars/source.fortran.modern.json +6 -6
  15. data/grammars/source.graphql.json +55 -2
  16. data/grammars/source.haskell.json +13 -4
  17. data/grammars/source.hsig.json +13 -4
  18. data/grammars/source.hx.json +2309 -0
  19. data/grammars/source.hxml.json +37 -5
  20. data/grammars/source.isabelle.theory.json +7 -7
  21. data/grammars/source.js.json +39 -54
  22. data/grammars/source.js.regexp.json +11 -5
  23. data/grammars/source.julia.json +16 -5
  24. data/grammars/{source.Kotlin.json → source.kotlin.json} +118 -33
  25. data/grammars/source.mathematica.json +0 -1
  26. data/grammars/source.meson.json +4 -0
  27. data/grammars/source.mupad.json +36 -12
  28. data/grammars/source.netlinx.erb.json +1 -2
  29. data/grammars/source.netlinx.json +0 -3
  30. data/grammars/source.nextflow.json +7 -7
  31. data/grammars/source.perl.json +1 -1
  32. data/grammars/source.renpy.json +436 -648
  33. data/grammars/source.scala.json +133 -87
  34. data/grammars/source.sed.json +1520 -0
  35. data/grammars/source.shell.json +17 -17
  36. data/grammars/source.solidity.json +1 -1
  37. data/grammars/source.swift.json +1 -1
  38. data/grammars/source.terraform.json +1 -1
  39. data/grammars/source.ts.json +493 -122
  40. data/grammars/source.tsx.json +568 -191
  41. data/grammars/source.x86.json +295 -0
  42. data/grammars/source.yaml.json +41 -21
  43. data/grammars/source.yara.json +1 -1
  44. data/grammars/text.haml.json +15 -0
  45. data/grammars/text.html.creole.json +1 -1
  46. data/grammars/text.html.php.blade.json +2 -2
  47. data/grammars/text.html.php.json +55 -134
  48. data/grammars/text.html.smarty.json +25 -1
  49. data/grammars/text.html.vue.json +0 -6
  50. data/grammars/text.restructuredtext.json +110 -17
  51. data/grammars/text.tex.latex.haskell.json +13 -4
  52. data/lib/linguist/documentation.yml +1 -0
  53. data/lib/linguist/generated.rb +9 -1
  54. data/lib/linguist/heuristics.rb +2 -0
  55. data/lib/linguist/language.rb +0 -8
  56. data/lib/linguist/languages.json +1 -1
  57. data/lib/linguist/languages.yml +103 -7
  58. data/lib/linguist/linguist.bundle +0 -0
  59. data/lib/linguist/samples.json +1221 -262
  60. data/lib/linguist/shebang.rb +7 -4
  61. data/lib/linguist/strategy/extension.rb +15 -2
  62. data/lib/linguist/strategy/filename.rb +15 -2
  63. data/lib/linguist/vendor.yml +7 -0
  64. data/lib/linguist/version.rb +1 -1
  65. metadata +17 -19
  66. data/grammars/source.erazor.json +0 -118
  67. data/grammars/source.haxe.2.json +0 -1267
  68. data/grammars/source.hss.1.json +0 -442
  69. data/grammars/source.nmml.json +0 -81
  70. data/grammars/source.sbt.json +0 -39
@@ -138,8 +138,8 @@
138
138
  },
139
139
  {
140
140
  "name": "meta.function.public.elixir",
141
- "begin": "^\\s*(def|defmacro)\\s+((?\u003e[a-zA-Z_]\\w*(?\u003e\\.|::))?(?\u003e[a-zA-Z_]\\w*(?\u003e[?!]|=(?!\u003e))?|===?|\u003e[\u003e=]?|\u003c=\u003e|\u003c[\u003c=]?|[%\u0026`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?))((\\()|\\s*)",
142
- "end": "(\\bdo:)|(\\bdo\\b)|(?=\\s+(def|defmacro)\\b)",
141
+ "begin": "^\\s*(def|defmacro|defdelegate|defguard)\\s+((?\u003e[a-zA-Z_]\\w*(?\u003e\\.|::))?(?\u003e[a-zA-Z_]\\w*(?\u003e[?!]|=(?!\u003e))?|===?|\u003e[\u003e=]?|\u003c=\u003e|\u003c[\u003c=]?|[%\u0026`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?))((\\()|\\s*)",
142
+ "end": "(\\bdo:)|(\\bdo\\b)|(?=\\s+(def|defmacro|defdelegate|defguard)\\b)",
143
143
  "patterns": [
144
144
  {
145
145
  "include": "$self"
@@ -185,8 +185,8 @@
185
185
  },
186
186
  {
187
187
  "name": "meta.function.private.elixir",
188
- "begin": "^\\s*(defp|defmacrop)\\s+((?\u003e[a-zA-Z_]\\w*(?\u003e\\.|::))?(?\u003e[a-zA-Z_]\\w*(?\u003e[?!]|=(?!\u003e))?|===?|\u003e[\u003e=]?|\u003c=\u003e|\u003c[\u003c=]?|[%\u0026`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?))((\\()|\\s*)",
189
- "end": "(\\bdo:)|(\\bdo\\b)|(?=\\s+(defp|defmacrop)\\b)",
188
+ "begin": "^\\s*(defp|defmacrop|defguardp)\\s+((?\u003e[a-zA-Z_]\\w*(?\u003e\\.|::))?(?\u003e[a-zA-Z_]\\w*(?\u003e[?!]|=(?!\u003e))?|===?|\u003e[\u003e=]?|\u003c=\u003e|\u003c[\u003c=]?|[%\u0026`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?))((\\()|\\s*)",
189
+ "end": "(\\bdo:)|(\\bdo\\b)|(?=\\s+(defp|defmacrop|defguardp)\\b)",
190
190
  "patterns": [
191
191
  {
192
192
  "include": "$self"
@@ -285,7 +285,7 @@
285
285
  },
286
286
  {
287
287
  "name": "keyword.control.elixir",
288
- "match": "(?\u003c!\\.)\\b(do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super|with)\\b(?![?!:])"
288
+ "match": "(?\u003c!\\.)\\b(do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defguardp?|defdelegate|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super|with)\\b(?![?!:])"
289
289
  },
290
290
  {
291
291
  "name": "keyword.operator.elixir",
@@ -301,7 +301,7 @@
301
301
  },
302
302
  {
303
303
  "name": "variable.language.elixir",
304
- "match": "\\b(__(CALLER|ENV|MODULE|DIR)__)\\b(?![?!])"
304
+ "match": "\\b(__(CALLER|ENV|MODULE|DIR|STACKTRACE)__)\\b(?![?!])"
305
305
  },
306
306
  {
307
307
  "name": "variable.other.readwrite.module.elixir",
@@ -755,7 +755,7 @@
755
755
  },
756
756
  {
757
757
  "name": "keyword.operator.bitwise.elixir",
758
- "match": "(\\|\\|\\||\u0026\u0026\u0026|^^^|\u003c\u003c\u003c|\u003e\u003e\u003e|~~~)"
758
+ "match": "(\\|\\|\\||\u0026\u0026\u0026|\\^\\^\\^|\u003c\u003c\u003c|\u003e\u003e\u003e|~~~)"
759
759
  },
760
760
  {
761
761
  "name": "keyword.operator.logical.elixir",
@@ -52,10 +52,7 @@
52
52
  }
53
53
  },
54
54
  {
55
- "include": "$self"
56
- },
57
- {
58
- "include": "source.fortran.modern"
55
+ "include": "$base"
59
56
  }
60
57
  ],
61
58
  "beginCaptures": {
@@ -87,7 +84,7 @@
87
84
  "end": "(?=!)|$",
88
85
  "patterns": [
89
86
  {
90
- "include": "$self"
87
+ "include": "$base"
91
88
  }
92
89
  ],
93
90
  "beginCaptures": {
@@ -208,36 +205,6 @@
208
205
  },
209
206
  "applyEndPatternLast": true
210
207
  },
211
- {
212
- "name": "comment.line.c.fortran",
213
- "begin": "^[Cc](?=\\b|[Cc])",
214
- "end": "$\\n?",
215
- "patterns": [
216
- {
217
- "match": "\\\\\\s*\\n"
218
- }
219
- ],
220
- "beginCaptures": {
221
- "0": {
222
- "name": "punctuation.definition.comment.fortran"
223
- }
224
- }
225
- },
226
- {
227
- "name": "comment.line.asterisk.fortran",
228
- "begin": "^\\*",
229
- "end": "$\\n?",
230
- "patterns": [
231
- {
232
- "match": "\\\\\\s*\\n"
233
- }
234
- ],
235
- "beginCaptures": {
236
- "0": {
237
- "name": "punctuation.definition.comment.fortran"
238
- }
239
- }
240
- },
241
208
  {
242
209
  "name": "meta.preprocessor.diagnostic.fortran",
243
210
  "begin": "^\\s*#\\s*(error|warning)\\b",
@@ -457,5 +424,41 @@
457
424
  }
458
425
  }
459
426
  }
427
+ },
428
+ "injections": {
429
+ "source.fortran - (source.fortran.modern)": {
430
+ "patterns": [
431
+ {
432
+ "name": "comment.line.c.fortran",
433
+ "begin": "^[Cc](?=\\b|[Cc])",
434
+ "end": "$\\n?",
435
+ "patterns": [
436
+ {
437
+ "match": "\\\\\\s*\\n"
438
+ }
439
+ ],
440
+ "beginCaptures": {
441
+ "0": {
442
+ "name": "punctuation.definition.comment.fortran"
443
+ }
444
+ }
445
+ },
446
+ {
447
+ "name": "comment.line.asterisk.fortran",
448
+ "begin": "^\\*",
449
+ "end": "$\\n?",
450
+ "patterns": [
451
+ {
452
+ "match": "\\\\\\s*\\n"
453
+ }
454
+ ],
455
+ "beginCaptures": {
456
+ "0": {
457
+ "name": "punctuation.definition.comment.fortran"
458
+ }
459
+ }
460
+ }
461
+ ]
462
+ }
460
463
  }
461
464
  }
@@ -8,7 +8,7 @@
8
8
  {
9
9
  "name": "meta.function.interface.operator.fortran.modern",
10
10
  "begin": "(?x:\t\t\t\t\t# extended mode\n\t\t\t\t\t^\n\t\t\t\t\t\\s*\t\t\t\t\t# start of line and possibly some space\n\t\t\t\t\t(?i:(interface))\t\t# 1: word interface\n\t\t\t\t\t\\s+\t\t\t\t\t# some space\n\t\t\t\t\t(?i:(operator|assignment))\t\t# 2: the words operator or assignment\n\t\t\t\t\t\\(\t\t\t\t\t# opening parenthesis\n\t\t\t\t\t((\\.[a-zA-Z0-9_]+\\.)|[\\+\\-\\=\\/\\*]+)\t# 3: an operator\n\t\t\t\t\t\n\t\t\t\t\t\\)\t\t\t\t\t# closing parenthesis\n\t\t\t\t\t)",
11
- "end": "(?x:\n\t\t\t\t\t((?i:end))\t\t\t# 1: the word end\n\t\t\t\t\t\\s*\t\t\t\t\t# possibly some space\n\t\t\t\t\t((?i:interface)?) \t\t# 2: possibly interface\n\t\t\t\t\t)",
11
+ "end": "(?xi)\n\t\t\t\t(end)(?=\\s|\\z)\t\t\t\t\t\t# 1: the word end\n\t\t\t\t(?:\n\t\t\t\t\t\\s+\n\t\t\t\t\t(interface)\t\t\t\t\t\t# 2: possibly interface\n\t\t\t\t)?\n\t\t\t",
12
12
  "patterns": [
13
13
  {
14
14
  "include": "$self"
@@ -37,7 +37,7 @@
37
37
  {
38
38
  "name": "meta.function.interface.fortran.modern",
39
39
  "begin": "(?x:\t\t\t\t\t# extended mode\n\t\t\t\t\t^\n\t\t\t\t\t\\s*\t\t\t\t\t# start of line and possibly some space\n\t\t\t\t\t(?i:(interface))\t\t# 1: word interface\n\t\t\t\t\t\\s+\t\t\t\t\t# some space\n\t\t\t\t\t([A-Za-z_][A-Za-z0-9_]*)\t# 1: name\n\t\t\t\t\t)",
40
- "end": "(?x:\t\t\t\t# extended mode\n\t\t\t\t\t((?i:end))\t\t# 1: the word end\n\t\t\t\t\t\\s*\t\t\t\t# possibly some space\n\t\t\t\t\t((?i:interface)?) \t# 2: possibly interface\n\t\t\t\t\t)",
40
+ "end": "(?xi)\n\t\t\t\t(end)(?=\\s|\\z)\t\t\t\t\t\t# 1: the word end\n\t\t\t\t(?:\n\t\t\t\t\t\\s+\n\t\t\t\t\t(interface)\t\t\t\t\t\t# 2: possibly interface\n\t\t\t\t)?\n\t\t\t",
41
41
  "patterns": [
42
42
  {
43
43
  "include": "$self"
@@ -62,8 +62,8 @@
62
62
  },
63
63
  {
64
64
  "name": "meta.type-definition.fortran.modern",
65
- "begin": "(?x:\t\t\t# extended mode\n\t\t\t\t\t^\\s*\t\t\t# begining of line and some space\n\t\t\t\t\t(?i:(type))\t# 1: word type\n\t\t\t\t\t\\s+\t\t\t# some space\n\t\t\t\t\t([a-zA-Z_][a-zA-Z0-9_]*)\t# 2: type name\n\t\t\t\t\t)",
66
- "end": "(?x:\n\t\t\t\t\t((?i:end))\t\t\t# 1: the word end\n\t\t\t\t\t\\s*\t\t\t\t\t# possibly some space\n\t\t\t\t\t(?i:(type))? \t\t\t# 2: possibly the word type\n\t\t\t\t\t(\\s+[A-Za-z_][A-Za-z0-9_]*)?\t# 3: possibly the name\n\t\t\t\t\t)",
65
+ "begin": "(?x:\t\t\t\t\t\t\t\t# extended mode\n\t\t\t\t\t^\\s*\t\t\t\t\t\t\t\t# begining of line and some space\n\t\t\t\t\t(?i:(type))\t\t\t\t\t\t\t# 1: word type\n\t\t\t\t\t\\s+\t\t\t\t\t\t\t\t\t# some space\n\t\t\t\t\t([a-zA-Z_][a-zA-Z0-9_]*)\t\t\t# 2: type name\n\t\t\t\t\t)",
66
+ "end": "(?xi)\n\t\t\t\t(end)(?=\\s|\\z)\t\t\t\t\t\t# 1: the word end\n\t\t\t\t(?:\n\t\t\t\t\t\\s+\n\t\t\t\t\t(type)\t\t\t\t\t\t\t# 2: possibly the word type\n\t\t\t\t\t(\\s+[A-Za-z_][A-Za-z0-9_]*)?\t# 3: possibly the name\n\t\t\t\t)?\n\t\t\t",
67
67
  "patterns": [
68
68
  {
69
69
  "include": "$self"
@@ -111,7 +111,7 @@
111
111
  ],
112
112
  "beginCaptures": {
113
113
  "1": {
114
- "name": "punctuation.whitespace.comment.leading.ruby"
114
+ "name": "punctuation.whitespace.comment.leading.fortran"
115
115
  }
116
116
  }
117
117
  },
@@ -137,7 +137,7 @@
137
137
  ],
138
138
  "beginCaptures": {
139
139
  "1": {
140
- "name": "punctuation.whitespace.comment.leading.ruby"
140
+ "name": "punctuation.whitespace.comment.leading.fortran"
141
141
  }
142
142
  }
143
143
  },
@@ -32,6 +32,15 @@
32
32
  },
33
33
  {
34
34
  "include": "#graphql-comment"
35
+ },
36
+ {
37
+ "include": "#graphql-directive"
38
+ },
39
+ {
40
+ "include": "#graphql-blockstring-value"
41
+ },
42
+ {
43
+ "include": "#graphql-string-value"
35
44
  }
36
45
  ]
37
46
  },
@@ -83,6 +92,32 @@
83
92
  }
84
93
  }
85
94
  },
95
+ "graphql-blockstring-value": {
96
+ "contentName": "string.quoted.block.graphql",
97
+ "begin": "\\s*+((\"\"\"))",
98
+ "end": "\\s*+(?:((\"\"\")))",
99
+ "patterns": [
100
+ {
101
+ "include": "#graphql-string-content"
102
+ }
103
+ ],
104
+ "beginCaptures": {
105
+ "1": {
106
+ "name": "string.quoted.block.graphql"
107
+ },
108
+ "2": {
109
+ "name": "punctuation.definition.string.begin.graphql"
110
+ }
111
+ },
112
+ "endCaptures": {
113
+ "1": {
114
+ "name": "string.quoted.block.graphql"
115
+ },
116
+ "2": {
117
+ "name": "punctuation.definition.string.end.graphql"
118
+ }
119
+ }
120
+ },
86
121
  "graphql-boolean-value": {
87
122
  "match": "\\s*\\b(true|false)\\b",
88
123
  "captures": {
@@ -513,6 +548,9 @@
513
548
  {
514
549
  "include": "#graphql-comment"
515
550
  },
551
+ {
552
+ "include": "#graphql-directive"
553
+ },
516
554
  {
517
555
  "include": "#graphql-skip-newlines"
518
556
  }
@@ -546,6 +584,9 @@
546
584
  }
547
585
  }
548
586
  },
587
+ {
588
+ "include": "#graphql-directive"
589
+ },
549
590
  {
550
591
  "include": "#graphql-comment"
551
592
  },
@@ -639,6 +680,9 @@
639
680
  "begin": "\\s*([_A-Za-z][_0-9A-Za-z]*)(?=\\s*\\(|:)",
640
681
  "end": "(?=\\s*(([_A-Za-z][_0-9A-Za-z]*)\\s*(\\(|:)|(})))|\\s*(,)",
641
682
  "patterns": [
683
+ {
684
+ "include": "#graphql-directive"
685
+ },
642
686
  {
643
687
  "include": "#graphql-comment"
644
688
  },
@@ -672,12 +716,15 @@
672
716
  "end": "(?\u003c=})",
673
717
  "patterns": [
674
718
  {
675
- "match": "\\s*\\b(implements)\\b\\s*([_A-Za-z][_0-9A-Za-z]*)",
719
+ "match": "\\s*(?:\\b(implements)\\b|(\u0026))\\s*([_A-Za-z][_0-9A-Za-z]*)",
676
720
  "captures": {
677
721
  "1": {
678
- "name": "keyword.implements.grapahql"
722
+ "name": "keyword.implements.graphql"
679
723
  },
680
724
  "2": {
725
+ "name": "keyword.implements.graphql"
726
+ },
727
+ "3": {
681
728
  "name": "support.type.graphql"
682
729
  }
683
730
  }
@@ -685,6 +732,9 @@
685
732
  {
686
733
  "include": "#graphql-comment"
687
734
  },
735
+ {
736
+ "include": "#graphql-directive"
737
+ },
688
738
  {
689
739
  "include": "#graphql-type-object"
690
740
  }
@@ -808,6 +858,9 @@
808
858
  {
809
859
  "include": "#graphql-int-value"
810
860
  },
861
+ {
862
+ "include": "#graphql-blockstring-value"
863
+ },
811
864
  {
812
865
  "include": "#graphql-string-value"
813
866
  },
@@ -489,7 +489,16 @@
489
489
  "patterns": [
490
490
  {
491
491
  "name": "entity.name.function.haskell",
492
- "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"
492
+ "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
493
+ "captures": {
494
+ "0": {
495
+ "patterns": [
496
+ {
497
+ "include": "#module_name_prefix"
498
+ }
499
+ ]
500
+ }
501
+ }
493
502
  }
494
503
  ]
495
504
  },
@@ -1053,7 +1062,7 @@
1053
1062
  "quasi_quotes": {
1054
1063
  "patterns": [
1055
1064
  {
1056
- "contentName": "string.quoted.quasiquotes.haskell",
1065
+ "contentName": "quoted.quasiquotes.haskell",
1057
1066
  "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}']*)(\\|)",
1058
1067
  "end": "(\\|)(\\])",
1059
1068
  "beginCaptures": {
@@ -1178,7 +1187,7 @@
1178
1187
  }
1179
1188
  },
1180
1189
  {
1181
- "match": "((?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))(.*?)(?=(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))|$)",
1190
+ "match": "((?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))(.*?)(?=({-|(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(--|\u003c-|=))(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))|$)",
1182
1191
  "captures": {
1183
1192
  "1": {
1184
1193
  "name": "keyword.other.double-colon.haskell"
@@ -1198,7 +1207,7 @@
1198
1207
  "scoped_type_override": {
1199
1208
  "patterns": [
1200
1209
  {
1201
- "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{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![(),;\\[\\]`{}_\"'])))(\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))",
1210
+ "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{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![(),;\\[\\]`{}_\"'])))--|{-)).)*)(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))",
1202
1211
  "captures": {
1203
1212
  "2": {
1204
1213
  "patterns": [
@@ -489,7 +489,16 @@
489
489
  "patterns": [
490
490
  {
491
491
  "name": "entity.name.function.haskell.hsig",
492
- "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))"
492
+ "match": "(?:(?=[\\p{Ll}_\\p{Lu}\\p{Lt}])(?\u003c![\\p{Ll}_\\p{Lu}\\p{Lt}']))(?:[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:\\.[\\p{Lu}\\p{Lt}][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*)*\\.)?[\\p{Ll}_][\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']*(?:(?\u003c=[\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}'])(?![\\p{Ll}_\\p{Lu}\\p{Lt}\\p{Nd}']))",
493
+ "captures": {
494
+ "0": {
495
+ "patterns": [
496
+ {
497
+ "include": "#module_name_prefix"
498
+ }
499
+ ]
500
+ }
501
+ }
493
502
  }
494
503
  ]
495
504
  },
@@ -1053,7 +1062,7 @@
1053
1062
  "quasi_quotes": {
1054
1063
  "patterns": [
1055
1064
  {
1056
- "contentName": "string.quoted.quasiquotes.haskell.hsig",
1065
+ "contentName": "quoted.quasiquotes.haskell.hsig",
1057
1066
  "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}']*)(\\|)",
1058
1067
  "end": "(\\|)(\\])",
1059
1068
  "beginCaptures": {
@@ -1178,7 +1187,7 @@
1178
1187
  }
1179
1188
  },
1180
1189
  {
1181
- "match": "((?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))(.*?)(?=(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))|$)",
1190
+ "match": "((?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(?:::|∷)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"']))))(.*?)(?=({-|(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(--|\u003c-|=))(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))|$)",
1182
1191
  "captures": {
1183
1192
  "1": {
1184
1193
  "name": "keyword.other.double-colon.haskell.hsig"
@@ -1198,7 +1207,7 @@
1198
1207
  "scoped_type_override": {
1199
1208
  "patterns": [
1200
1209
  {
1201
- "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{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![(),;\\[\\]`{}_\"'])))(\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))",
1210
+ "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{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![(),;\\[\\]`{}_\"'])))--|{-)).)*)(?\u003c!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))(\u003c-|=)(?!(?:[\\p{S}\\p{P}](?\u003c![(),;\\[\\]`{}_\"'])))",
1202
1211
  "captures": {
1203
1212
  "2": {
1204
1213
  "patterns": [
@@ -0,0 +1,2309 @@
1
+ {
2
+ "name": "Haxe",
3
+ "scopeName": "source.hx",
4
+ "patterns": [
5
+ {
6
+ "include": "#all"
7
+ }
8
+ ],
9
+ "repository": {
10
+ "abstract": {
11
+ "name": "meta.abstract.hx",
12
+ "begin": "(?=abstract)",
13
+ "end": "(?\u003c=\\})|(;)",
14
+ "patterns": [
15
+ {
16
+ "include": "#abstract-name"
17
+ },
18
+ {
19
+ "include": "#abstract-name-post"
20
+ },
21
+ {
22
+ "include": "#abstract-block"
23
+ }
24
+ ],
25
+ "endCaptures": {
26
+ "1": {
27
+ "name": "punctuation.terminator.hx"
28
+ }
29
+ }
30
+ },
31
+ "abstract-block": {
32
+ "name": "meta.block.hx",
33
+ "begin": "(?\u003c=\\{)",
34
+ "end": "(\\})",
35
+ "patterns": [
36
+ {
37
+ "include": "#method"
38
+ },
39
+ {
40
+ "include": "#modifiers"
41
+ },
42
+ {
43
+ "include": "#variable"
44
+ },
45
+ {
46
+ "include": "#block"
47
+ },
48
+ {
49
+ "include": "#block-contents"
50
+ }
51
+ ],
52
+ "endCaptures": {
53
+ "1": {
54
+ "name": "punctuation.definition.block.end.hx"
55
+ }
56
+ }
57
+ },
58
+ "abstract-name": {
59
+ "begin": "\\b(abstract)\\b",
60
+ "end": "([_A-Za-z]\\w*)",
61
+ "patterns": [
62
+ {
63
+ "include": "#global"
64
+ }
65
+ ],
66
+ "beginCaptures": {
67
+ "1": {
68
+ "name": "storage.type.class.hx"
69
+ }
70
+ },
71
+ "endCaptures": {
72
+ "1": {
73
+ "name": "entity.name.type.class.hx"
74
+ }
75
+ }
76
+ },
77
+ "abstract-name-post": {
78
+ "begin": "(?\u003c=\\w)",
79
+ "end": "([\\{;])",
80
+ "patterns": [
81
+ {
82
+ "include": "#global"
83
+ },
84
+ {
85
+ "name": "keyword.other.hx",
86
+ "match": "\\b(from|to)\\b"
87
+ },
88
+ {
89
+ "include": "#type"
90
+ },
91
+ {
92
+ "name": "punctuation.definition.other.hx",
93
+ "match": "[\\(\\)]"
94
+ }
95
+ ],
96
+ "endCaptures": {
97
+ "1": {
98
+ "name": "punctuation.definition.block.begin.hx"
99
+ }
100
+ }
101
+ },
102
+ "accessor-method": {
103
+ "patterns": [
104
+ {
105
+ "name": "entity.name.function.hx",
106
+ "match": "\\b(get|set)_[_A-Za-z]\\w*\\b"
107
+ }
108
+ ]
109
+ },
110
+ "all": {
111
+ "patterns": [
112
+ {
113
+ "include": "#global"
114
+ },
115
+ {
116
+ "include": "#package"
117
+ },
118
+ {
119
+ "include": "#import"
120
+ },
121
+ {
122
+ "include": "#using"
123
+ },
124
+ {
125
+ "include": "#abstract"
126
+ },
127
+ {
128
+ "include": "#class"
129
+ },
130
+ {
131
+ "include": "#enum"
132
+ },
133
+ {
134
+ "include": "#interface"
135
+ },
136
+ {
137
+ "include": "#typedef"
138
+ },
139
+ {
140
+ "include": "#block"
141
+ },
142
+ {
143
+ "include": "#block-contents"
144
+ }
145
+ ]
146
+ },
147
+ "array": {
148
+ "name": "meta.array.literal.hx",
149
+ "begin": "\\[",
150
+ "end": "\\]",
151
+ "patterns": [
152
+ {
153
+ "include": "#block"
154
+ },
155
+ {
156
+ "include": "#block-contents"
157
+ }
158
+ ],
159
+ "beginCaptures": {
160
+ "0": {
161
+ "name": "punctuation.definition.array.begin.hx"
162
+ }
163
+ },
164
+ "endCaptures": {
165
+ "0": {
166
+ "name": "punctuation.definition.array.end.hx"
167
+ }
168
+ }
169
+ },
170
+ "arrow-function": {
171
+ "name": "meta.method.arrow.hx",
172
+ "begin": "(\\()(?=[^(]*?\\)\\s*-\u003e)",
173
+ "end": "(\\))\\s*(-\u003e)",
174
+ "patterns": [
175
+ {
176
+ "include": "#arrow-function-parameter"
177
+ }
178
+ ],
179
+ "beginCaptures": {
180
+ "1": {
181
+ "name": "punctuation.definition.parameters.begin.hx"
182
+ }
183
+ },
184
+ "endCaptures": {
185
+ "1": {
186
+ "name": "punctuation.definition.parameters.end.hx"
187
+ },
188
+ "2": {
189
+ "name": "storage.type.function.arrow.hx"
190
+ }
191
+ }
192
+ },
193
+ "arrow-function-parameter": {
194
+ "begin": "(?\u003c=\\(|,)",
195
+ "end": "(?=\\)|,)",
196
+ "patterns": [
197
+ {
198
+ "include": "#parameter-name"
199
+ },
200
+ {
201
+ "include": "#arrow-function-parameter-type-hint"
202
+ },
203
+ {
204
+ "include": "#parameter-assign"
205
+ },
206
+ {
207
+ "include": "#punctuation-comma"
208
+ },
209
+ {
210
+ "include": "#global"
211
+ }
212
+ ]
213
+ },
214
+ "arrow-function-parameter-type-hint": {
215
+ "begin": ":",
216
+ "end": "(?=\\)|,|=)",
217
+ "patterns": [
218
+ {
219
+ "include": "#type"
220
+ }
221
+ ],
222
+ "beginCaptures": {
223
+ "0": {
224
+ "name": "keyword.operator.type.annotation.hx"
225
+ }
226
+ }
227
+ },
228
+ "block": {
229
+ "begin": "\\{",
230
+ "end": "\\}",
231
+ "patterns": [
232
+ {
233
+ "include": "#block"
234
+ },
235
+ {
236
+ "include": "#block-contents"
237
+ }
238
+ ],
239
+ "beginCaptures": {
240
+ "0": {
241
+ "name": "punctuation.definition.block.begin.hx"
242
+ }
243
+ },
244
+ "endCaptures": {
245
+ "0": {
246
+ "name": "punctuation.definition.block.end.hx"
247
+ }
248
+ }
249
+ },
250
+ "block-contents": {
251
+ "patterns": [
252
+ {
253
+ "include": "#global"
254
+ },
255
+ {
256
+ "include": "#regex"
257
+ },
258
+ {
259
+ "include": "#array"
260
+ },
261
+ {
262
+ "include": "#constants"
263
+ },
264
+ {
265
+ "include": "#strings"
266
+ },
267
+ {
268
+ "include": "#metadata"
269
+ },
270
+ {
271
+ "include": "#method"
272
+ },
273
+ {
274
+ "include": "#variable"
275
+ },
276
+ {
277
+ "include": "#modifiers"
278
+ },
279
+ {
280
+ "include": "#new-expr"
281
+ },
282
+ {
283
+ "include": "#for-loop"
284
+ },
285
+ {
286
+ "include": "#keywords"
287
+ },
288
+ {
289
+ "include": "#arrow-function"
290
+ },
291
+ {
292
+ "include": "#method-call"
293
+ },
294
+ {
295
+ "include": "#enum-constructor-call"
296
+ },
297
+ {
298
+ "include": "#punctuation-braces"
299
+ },
300
+ {
301
+ "include": "#macro-reification"
302
+ },
303
+ {
304
+ "include": "#operators"
305
+ },
306
+ {
307
+ "include": "#operator-assignment"
308
+ },
309
+ {
310
+ "include": "#punctuation-terminator"
311
+ },
312
+ {
313
+ "include": "#punctuation-comma"
314
+ },
315
+ {
316
+ "include": "#identifiers"
317
+ }
318
+ ]
319
+ },
320
+ "class": {
321
+ "name": "meta.class.hx",
322
+ "begin": "(?=class)",
323
+ "end": "(?\u003c=\\})|(;)",
324
+ "patterns": [
325
+ {
326
+ "include": "#class-name"
327
+ },
328
+ {
329
+ "include": "#class-name-post"
330
+ },
331
+ {
332
+ "include": "#class-block"
333
+ }
334
+ ],
335
+ "endCaptures": {
336
+ "1": {
337
+ "name": "punctuation.terminator.hx"
338
+ }
339
+ }
340
+ },
341
+ "class-block": {
342
+ "name": "meta.block.hx",
343
+ "begin": "(?\u003c=\\{)",
344
+ "end": "(\\})",
345
+ "patterns": [
346
+ {
347
+ "include": "#method"
348
+ },
349
+ {
350
+ "include": "#modifiers"
351
+ },
352
+ {
353
+ "include": "#variable"
354
+ },
355
+ {
356
+ "include": "#block"
357
+ },
358
+ {
359
+ "include": "#block-contents"
360
+ }
361
+ ],
362
+ "endCaptures": {
363
+ "1": {
364
+ "name": "punctuation.definition.block.end.hx"
365
+ }
366
+ }
367
+ },
368
+ "class-name": {
369
+ "name": "meta.class.identifier.hx",
370
+ "begin": "\\b(class)\\b",
371
+ "end": "([_A-Za-z]\\w*)",
372
+ "patterns": [
373
+ {
374
+ "include": "#global"
375
+ }
376
+ ],
377
+ "beginCaptures": {
378
+ "1": {
379
+ "name": "storage.type.class.hx"
380
+ }
381
+ },
382
+ "endCaptures": {
383
+ "1": {
384
+ "name": "entity.name.type.class.hx"
385
+ }
386
+ }
387
+ },
388
+ "class-name-post": {
389
+ "begin": "(?\u003c=\\w)",
390
+ "end": "([\\{;])",
391
+ "patterns": [
392
+ {
393
+ "include": "#modifiers-inheritance"
394
+ },
395
+ {
396
+ "include": "#type"
397
+ }
398
+ ],
399
+ "endCaptures": {
400
+ "1": {
401
+ "name": "punctuation.definition.block.begin.hx"
402
+ }
403
+ }
404
+ },
405
+ "comments": {
406
+ "patterns": [
407
+ {
408
+ "name": "comment.block.documentation.hx",
409
+ "begin": "/\\*\\*(?!/)",
410
+ "end": "\\*/",
411
+ "patterns": [
412
+ {
413
+ "include": "#javadoc-tags"
414
+ }
415
+ ],
416
+ "beginCaptures": {
417
+ "0": {
418
+ "name": "punctuation.definition.comment.hx"
419
+ }
420
+ },
421
+ "endCaptures": {
422
+ "0": {
423
+ "name": "punctuation.definition.comment.hx"
424
+ }
425
+ }
426
+ },
427
+ {
428
+ "name": "comment.block.hx",
429
+ "begin": "/\\*",
430
+ "end": "\\*/",
431
+ "patterns": [
432
+ {
433
+ "include": "#javadoc-tags"
434
+ }
435
+ ],
436
+ "beginCaptures": {
437
+ "0": {
438
+ "name": "punctuation.definition.comment.hx"
439
+ }
440
+ },
441
+ "endCaptures": {
442
+ "0": {
443
+ "name": "punctuation.definition.comment.hx"
444
+ }
445
+ }
446
+ },
447
+ {
448
+ "name": "comment.line.double-slash.hx",
449
+ "match": "(//).*$\\n?",
450
+ "captures": {
451
+ "1": {
452
+ "name": "punctuation.definition.comment.hx"
453
+ }
454
+ }
455
+ }
456
+ ]
457
+ },
458
+ "conditional-compilation": {
459
+ "patterns": [
460
+ {
461
+ "match": "((#(if|elseif))[\\s!]+([a-zA-Z0-9_]+)(?=\\s|/*|//))",
462
+ "captures": {
463
+ "0": {
464
+ "name": "punctuation.definition.tag"
465
+ }
466
+ }
467
+ },
468
+ {
469
+ "name": "punctuation.definition.tag",
470
+ "begin": "((#(if|elseif))[\\s!]*)(?=\\()",
471
+ "end": "(?\u003c=\\)|\\n)",
472
+ "patterns": [
473
+ {
474
+ "include": "#conditional-compilation-parens"
475
+ }
476
+ ],
477
+ "beginCaptures": {
478
+ "0": {
479
+ "name": "punctuation.definition.tag"
480
+ }
481
+ },
482
+ "endCaptures": {
483
+ "0": {
484
+ "name": "punctuation.definition.tag"
485
+ }
486
+ }
487
+ },
488
+ {
489
+ "name": "punctuation.definition.tag",
490
+ "match": "(#(end|else|error|line))"
491
+ },
492
+ {
493
+ "name": "punctuation.definition.tag",
494
+ "match": "(#([a-zA-Z0-9_]*))\\s"
495
+ }
496
+ ]
497
+ },
498
+ "conditional-compilation-parens": {
499
+ "begin": "\\(",
500
+ "end": "\\)",
501
+ "patterns": [
502
+ {
503
+ "include": "#conditional-compilation-parens"
504
+ }
505
+ ]
506
+ },
507
+ "constant-name": {
508
+ "name": "variable.other.hx",
509
+ "match": "\\b([_A-Z][_A-Z0-9]*)\\b"
510
+ },
511
+ "constants": {
512
+ "patterns": [
513
+ {
514
+ "name": "constant.language.hx",
515
+ "match": "\\b(true|false|null)\\b"
516
+ },
517
+ {
518
+ "name": "constant.numeric.hex.hx",
519
+ "match": "\\b(0(x|X)[0-9a-fA-F]*)\\b"
520
+ },
521
+ {
522
+ "match": "(?x)\n(?\u003c!\\$)(?:\n (?:\\b[0-9]+(\\.)[0-9]+[eE][+-]?[0-9]+\\b)| # 1.1E+3\n (?:\\b[0-9]+(\\.)[eE][+-]?[0-9]+\\b)| # 1.E+3\n (?:\\B(\\.)[0-9]+[eE][+-]?[0-9]+\\b)| # .1E+3\n (?:\\b[0-9]+[eE][+-]?[0-9]+\\b)| # 1E+3\n (?:\\b[0-9]+(\\.)[0-9]+\\b)| # 1.1\n (?:\\b[0-9]+(\\.)(?!\\.)\\B)| # 1.\n (?:\\B(\\.)[0-9]+\\b)| # .1\n (?:\\b[0-9]+\\b) # 1\n)(?!\\$)",
523
+ "captures": {
524
+ "0": {
525
+ "name": "constant.numeric.decimal.hx"
526
+ },
527
+ "1": {
528
+ "name": "meta.delimiter.decimal.period.hx"
529
+ },
530
+ "2": {
531
+ "name": "meta.delimiter.decimal.period.hx"
532
+ },
533
+ "3": {
534
+ "name": "meta.delimiter.decimal.period.hx"
535
+ },
536
+ "4": {
537
+ "name": "meta.delimiter.decimal.period.hx"
538
+ },
539
+ "5": {
540
+ "name": "meta.delimiter.decimal.period.hx"
541
+ },
542
+ "6": {
543
+ "name": "meta.delimiter.decimal.period.hx"
544
+ }
545
+ }
546
+ }
547
+ ]
548
+ },
549
+ "enum": {
550
+ "name": "meta.enum.hx",
551
+ "begin": "(?=enum)",
552
+ "end": "(?\u003c=\\})|(;)",
553
+ "patterns": [
554
+ {
555
+ "include": "#enum-name"
556
+ },
557
+ {
558
+ "include": "#enum-name-post"
559
+ },
560
+ {
561
+ "include": "#enum-block"
562
+ }
563
+ ],
564
+ "endCaptures": {
565
+ "1": {
566
+ "name": "punctuation.terminator.hx"
567
+ }
568
+ }
569
+ },
570
+ "enum-block": {
571
+ "name": "meta.block.hx",
572
+ "begin": "(?\u003c=\\{)",
573
+ "end": "(\\})",
574
+ "patterns": [
575
+ {
576
+ "include": "#global"
577
+ },
578
+ {
579
+ "include": "#metadata"
580
+ },
581
+ {
582
+ "include": "#parameters"
583
+ },
584
+ {
585
+ "include": "#identifiers"
586
+ }
587
+ ],
588
+ "endCaptures": {
589
+ "1": {
590
+ "name": "punctuation.definition.block.end.hx"
591
+ }
592
+ }
593
+ },
594
+ "enum-constructor-call": {
595
+ "begin": "\\b(?\u003c!\\.)((_*[a-z]\\w*\\.)*)(_*[A-Z]\\w*)(?:(\\.)(_*[A-Z]\\w*[a-z]\\w*))*\\s*(\\()",
596
+ "end": "(\\))",
597
+ "patterns": [
598
+ {
599
+ "include": "#block"
600
+ },
601
+ {
602
+ "include": "#block-contents"
603
+ }
604
+ ],
605
+ "beginCaptures": {
606
+ "1": {
607
+ "name": "support.package.hx"
608
+ },
609
+ "3": {
610
+ "name": "entity.name.type.hx"
611
+ },
612
+ "4": {
613
+ "name": "support.package.hx"
614
+ },
615
+ "5": {
616
+ "name": "entity.name.type.hx"
617
+ },
618
+ "6": {
619
+ "name": "meta.brace.round.hx"
620
+ }
621
+ },
622
+ "endCaptures": {
623
+ "1": {
624
+ "name": "meta.brace.round.hx"
625
+ }
626
+ }
627
+ },
628
+ "enum-name": {
629
+ "begin": "\\b(enum)\\b",
630
+ "end": "([_A-Za-z]\\w*)",
631
+ "patterns": [
632
+ {
633
+ "include": "#global"
634
+ }
635
+ ],
636
+ "beginCaptures": {
637
+ "1": {
638
+ "name": "storage.type.class.hx"
639
+ }
640
+ },
641
+ "endCaptures": {
642
+ "1": {
643
+ "name": "entity.name.type.class.hx"
644
+ }
645
+ }
646
+ },
647
+ "enum-name-post": {
648
+ "begin": "(?\u003c=\\w)",
649
+ "end": "([\\{;])",
650
+ "patterns": [
651
+ {
652
+ "include": "#type"
653
+ }
654
+ ],
655
+ "endCaptures": {
656
+ "1": {
657
+ "name": "punctuation.definition.block.begin.hx"
658
+ }
659
+ }
660
+ },
661
+ "for-loop": {
662
+ "begin": "\\b(for)\\b\\s*(\\()\\s*\\b([_A-Za-z]\\w*)\\b\\s+(in)",
663
+ "end": "(\\))",
664
+ "patterns": [
665
+ {
666
+ "include": "#block"
667
+ },
668
+ {
669
+ "include": "#block-contents"
670
+ }
671
+ ],
672
+ "beginCaptures": {
673
+ "1": {
674
+ "name": "keyword.control.flow-control.hx"
675
+ },
676
+ "2": {
677
+ "name": "meta.brace.round.hx"
678
+ },
679
+ "3": {
680
+ "name": "variable.other.hx"
681
+ },
682
+ "4": {
683
+ "name": "keyword.other.in.hx"
684
+ }
685
+ },
686
+ "endCaptures": {
687
+ "1": {
688
+ "name": "meta.brace.round.hx"
689
+ }
690
+ }
691
+ },
692
+ "function-type": {
693
+ "begin": "\\(",
694
+ "end": "\\)",
695
+ "patterns": [
696
+ {
697
+ "include": "#function-type-parameter"
698
+ }
699
+ ],
700
+ "beginCaptures": {
701
+ "0": {
702
+ "name": "punctuation.definition.parameters.begin.hx"
703
+ }
704
+ },
705
+ "endCaptures": {
706
+ "0": {
707
+ "name": "punctuation.definition.parameters.end.hx"
708
+ }
709
+ }
710
+ },
711
+ "function-type-parameter": {
712
+ "begin": "(?\u003c=\\(|,)",
713
+ "end": "(?=\\)|,)",
714
+ "patterns": [
715
+ {
716
+ "include": "#global"
717
+ },
718
+ {
719
+ "include": "#metadata"
720
+ },
721
+ {
722
+ "include": "#operator-optional"
723
+ },
724
+ {
725
+ "include": "#punctuation-comma"
726
+ },
727
+ {
728
+ "include": "#function-type-parameter-name"
729
+ },
730
+ {
731
+ "include": "#function-type-parameter-type-hint"
732
+ },
733
+ {
734
+ "include": "#type"
735
+ },
736
+ {
737
+ "include": "#global"
738
+ }
739
+ ]
740
+ },
741
+ "function-type-parameter-name": {
742
+ "match": "([_a-zA-Z]\\w*)(?=\\s*:)",
743
+ "captures": {
744
+ "1": {
745
+ "name": "variable.parameter.hx"
746
+ }
747
+ }
748
+ },
749
+ "function-type-parameter-type-hint": {
750
+ "begin": ":",
751
+ "end": "(?=\\)|,)",
752
+ "patterns": [
753
+ {
754
+ "include": "#type"
755
+ }
756
+ ],
757
+ "beginCaptures": {
758
+ "0": {
759
+ "name": "keyword.operator.type.annotation.hx"
760
+ }
761
+ }
762
+ },
763
+ "global": {
764
+ "patterns": [
765
+ {
766
+ "include": "#comments"
767
+ },
768
+ {
769
+ "include": "#conditional-compilation"
770
+ }
771
+ ]
772
+ },
773
+ "identifier-name": {
774
+ "name": "variable.other.hx",
775
+ "match": "\\b([_A-Za-z]\\w*)\\b"
776
+ },
777
+ "identifiers": {
778
+ "patterns": [
779
+ {
780
+ "include": "#constant-name"
781
+ },
782
+ {
783
+ "include": "#type-name"
784
+ },
785
+ {
786
+ "include": "#identifier-name"
787
+ }
788
+ ]
789
+ },
790
+ "import": {
791
+ "match": "(import)\\s+(?:((\\b_*[a-z]\\w*\\.?)*)(?:((\\b_*[A-Z]\\w*\\.?)+)|(\\*))?(\\b_*[a-z]\\w*|\\*)?(?:\\s+(as|in)\\s+(\\b_*[A-Z]\\w*)?)?)?\\s*(;)?",
792
+ "captures": {
793
+ "1": {
794
+ "name": "storage.type.import.hx"
795
+ },
796
+ "10": {
797
+ "name": "punctuation.terminator.hx"
798
+ },
799
+ "2": {
800
+ "name": "support.package.hx"
801
+ },
802
+ "4": {
803
+ "name": "entity.name.type.hx"
804
+ },
805
+ "6": {
806
+ "name": "support.package.hx"
807
+ },
808
+ "7": {
809
+ "name": "support.package.hx"
810
+ },
811
+ "8": {
812
+ "name": "keyword.other.hx"
813
+ },
814
+ "9": {
815
+ "name": "entity.name.type.hx"
816
+ }
817
+ }
818
+ },
819
+ "interface": {
820
+ "name": "meta.interface.hx",
821
+ "begin": "(?=interface)",
822
+ "end": "(?\u003c=\\})|(;)",
823
+ "patterns": [
824
+ {
825
+ "include": "#interface-name"
826
+ },
827
+ {
828
+ "include": "#interface-name-post"
829
+ },
830
+ {
831
+ "include": "#interface-block"
832
+ }
833
+ ],
834
+ "endCaptures": {
835
+ "1": {
836
+ "name": "punctuation.terminator.hx"
837
+ }
838
+ }
839
+ },
840
+ "interface-block": {
841
+ "name": "meta.block.hx",
842
+ "begin": "(?\u003c=\\{)",
843
+ "end": "(\\})",
844
+ "patterns": [
845
+ {
846
+ "include": "#method"
847
+ },
848
+ {
849
+ "include": "#variable"
850
+ },
851
+ {
852
+ "include": "#block"
853
+ },
854
+ {
855
+ "include": "#block-contents"
856
+ }
857
+ ],
858
+ "endCaptures": {
859
+ "1": {
860
+ "name": "punctuation.definition.block.end.hx"
861
+ }
862
+ }
863
+ },
864
+ "interface-name": {
865
+ "begin": "\\b(interface)\\b",
866
+ "end": "([_A-Za-z]\\w*)",
867
+ "patterns": [
868
+ {
869
+ "include": "#global"
870
+ }
871
+ ],
872
+ "beginCaptures": {
873
+ "1": {
874
+ "name": "storage.type.class.hx"
875
+ }
876
+ },
877
+ "endCaptures": {
878
+ "1": {
879
+ "name": "entity.name.type.class.hx"
880
+ }
881
+ }
882
+ },
883
+ "interface-name-post": {
884
+ "begin": "(?\u003c=\\w)",
885
+ "end": "([\\{;])",
886
+ "patterns": [
887
+ {
888
+ "include": "#global"
889
+ },
890
+ {
891
+ "include": "#modifiers-inheritance"
892
+ },
893
+ {
894
+ "include": "#type"
895
+ }
896
+ ],
897
+ "endCaptures": {
898
+ "1": {
899
+ "name": "punctuation.definition.block.begin.hx"
900
+ }
901
+ }
902
+ },
903
+ "javadoc-tags": {
904
+ "patterns": [
905
+ {
906
+ "match": "(@(?:param|exception|throws|event))\\s+([_A-Za-z]\\w*)\\s+",
907
+ "captures": {
908
+ "1": {
909
+ "name": "storage.type.class.javadoc"
910
+ },
911
+ "2": {
912
+ "name": "variable.other.javadoc"
913
+ }
914
+ }
915
+ },
916
+ {
917
+ "match": "(@since)\\s+([\\w\\.-]+)\\s+",
918
+ "captures": {
919
+ "1": {
920
+ "name": "storage.type.class.javadoc"
921
+ },
922
+ "2": {
923
+ "name": "constant.numeric.javadoc"
924
+ }
925
+ }
926
+ },
927
+ {
928
+ "match": "@(param|exception|throws|deprecated|returns?|since|default|see|event)",
929
+ "captures": {
930
+ "0": {
931
+ "name": "storage.type.class.javadoc"
932
+ }
933
+ }
934
+ }
935
+ ]
936
+ },
937
+ "keywords": {
938
+ "patterns": [
939
+ {
940
+ "begin": "(?\u003c=trace|$type|if|while|for|super)\\s*(\\()",
941
+ "end": "\\)",
942
+ "patterns": [
943
+ {
944
+ "include": "#block-contents"
945
+ }
946
+ ],
947
+ "beginCaptures": {
948
+ "2": {
949
+ "name": "meta.brace.round.hx"
950
+ }
951
+ },
952
+ "endCaptures": {
953
+ "0": {
954
+ "name": "meta.brace.round.hx"
955
+ }
956
+ }
957
+ },
958
+ {
959
+ "begin": "(?\u003c=catch)\\s*(\\()",
960
+ "end": "\\)",
961
+ "patterns": [
962
+ {
963
+ "include": "#block-contents"
964
+ },
965
+ {
966
+ "include": "#type-check"
967
+ }
968
+ ],
969
+ "beginCaptures": {
970
+ "2": {
971
+ "name": "meta.brace.round.hx"
972
+ }
973
+ },
974
+ "endCaptures": {
975
+ "0": {
976
+ "name": "meta.brace.round.hx"
977
+ }
978
+ }
979
+ },
980
+ {
981
+ "begin": "(?\u003c=cast)\\s*(\\()",
982
+ "end": "\\)",
983
+ "patterns": [
984
+ {
985
+ "begin": "(?=,)",
986
+ "end": "(?=\\))",
987
+ "patterns": [
988
+ {
989
+ "include": "#type"
990
+ }
991
+ ]
992
+ },
993
+ {
994
+ "include": "#block-contents"
995
+ }
996
+ ],
997
+ "beginCaptures": {
998
+ "2": {
999
+ "name": "meta.brace.round.hx"
1000
+ }
1001
+ },
1002
+ "endCaptures": {
1003
+ "0": {
1004
+ "name": "meta.brace.round.hx"
1005
+ }
1006
+ }
1007
+ },
1008
+ {
1009
+ "name": "keyword.control.catch-exception.hx",
1010
+ "match": "\\b(try|catch|throw)\\b"
1011
+ },
1012
+ {
1013
+ "begin": "\\b(case|default)\\b",
1014
+ "end": ":|(?=if)|$",
1015
+ "patterns": [
1016
+ {
1017
+ "include": "#global"
1018
+ },
1019
+ {
1020
+ "match": "\\b(var)\\b\\s*([_a-zA-Z]\\w*)\\b",
1021
+ "captures": {
1022
+ "1": {
1023
+ "name": "storage.type.variable.hx"
1024
+ },
1025
+ "2": {
1026
+ "name": "variable.other.hx"
1027
+ }
1028
+ }
1029
+ },
1030
+ {
1031
+ "include": "#array"
1032
+ },
1033
+ {
1034
+ "include": "#constants"
1035
+ },
1036
+ {
1037
+ "include": "#strings"
1038
+ },
1039
+ {
1040
+ "name": "meta.brace.round.hx",
1041
+ "match": "\\("
1042
+ },
1043
+ {
1044
+ "name": "meta.brace.round.hx",
1045
+ "match": "\\)"
1046
+ },
1047
+ {
1048
+ "include": "#macro-reification"
1049
+ },
1050
+ {
1051
+ "include": "#operator-assignment"
1052
+ },
1053
+ {
1054
+ "include": "#punctuation-comma"
1055
+ },
1056
+ {
1057
+ "include": "#identifiers"
1058
+ }
1059
+ ],
1060
+ "beginCaptures": {
1061
+ "1": {
1062
+ "name": "keyword.control.flow-control.hx"
1063
+ }
1064
+ }
1065
+ },
1066
+ {
1067
+ "name": "keyword.control.flow-control.hx",
1068
+ "match": "\\b(if|else|return|do|while|for|break|continue|switch|case|default)\\b"
1069
+ },
1070
+ {
1071
+ "name": "keyword.other.untyped.hx",
1072
+ "match": "\\b(cast|untyped)\\b"
1073
+ },
1074
+ {
1075
+ "name": "keyword.other.trace.hx",
1076
+ "match": "\\btrace\\b"
1077
+ },
1078
+ {
1079
+ "name": "keyword.other.type.hx",
1080
+ "match": "\\$type\\b"
1081
+ },
1082
+ {
1083
+ "name": "keyword.other.untyped-property.hx",
1084
+ "match": "\\__(global|this)__\\b"
1085
+ },
1086
+ {
1087
+ "name": "variable.language.hx",
1088
+ "match": "\\b(this|super)\\b"
1089
+ },
1090
+ {
1091
+ "name": "keyword.operator.new.hx",
1092
+ "match": "\\bnew\\b"
1093
+ },
1094
+ {
1095
+ "name": "storage.type.hx",
1096
+ "match": "\\b(abstract|class|enum|interface|typedef)\\b"
1097
+ },
1098
+ {
1099
+ "name": "storage.type.function.arrow.hx",
1100
+ "match": "-\u003e"
1101
+ },
1102
+ {
1103
+ "include": "#modifiers"
1104
+ },
1105
+ {
1106
+ "include": "#modifiers-inheritance"
1107
+ }
1108
+ ]
1109
+ },
1110
+ "keywords-accessor": {
1111
+ "name": "storage.type.property.hx",
1112
+ "match": "\\b(default|get|set|dynamic|never|null)\\b"
1113
+ },
1114
+ "macro-reification": {
1115
+ "patterns": [
1116
+ {
1117
+ "match": "(\\$)([eabipv])\\{",
1118
+ "captures": {
1119
+ "1": {
1120
+ "name": "punctuation.definition.reification.hx"
1121
+ },
1122
+ "2": {
1123
+ "name": "keyword.reification.hx"
1124
+ }
1125
+ }
1126
+ },
1127
+ {
1128
+ "match": "((\\$)([a-zA-Z.]*))",
1129
+ "captures": {
1130
+ "2": {
1131
+ "name": "punctuation.definition.reification.hx"
1132
+ },
1133
+ "3": {
1134
+ "name": "variable.reification.hx"
1135
+ }
1136
+ }
1137
+ }
1138
+ ]
1139
+ },
1140
+ "metadata": {
1141
+ "patterns": [
1142
+ {
1143
+ "begin": "(@)(:(abi|abstract|access|allow|analyzer|annotation|arrayAccess|astSource|autoBuild|bind|bitmap|bridgeProperties|build|buildXml|callable|classCode|commutative|compilerGenerated|const|coreApi|coreType|cppFileCode|cppInclude|cppNamespaceCode|dce|debug|decl|delegate|depend|deprecated|eager|enum|event|expose|extern|fakeEnum|file|fileXml|final|fixed|font|forward|forwardStatics|from|functionCode|functionTailCode|generic|genericBuild|getter|hack|headerClassCode|headerCode|headerInclude|headerNamespaceCode|hxGen|ifFeature|include|internal|isVar|javaCanonical|jsRequire|keep|keepInit|keepSub|luaDotMethod|luaRequire|macro|mergeBlock|meta|multiReturn|multiType|native|nativeChildren|nativeGen|nativeProperty|nativeStaticExtension|noCompletion|noDebug|noDoc|noImportGlobal|noPrivateAccess|noStack|noUsing|nonVirtual|notNull|ns|objc|objcProtocol|op|optional|overload|phpConstants|phpGlobal|phpClassConst|phpMagic|phpNoConstructor|pos|privateAccess|property|protected|publicFields|pure|pythonImport|readOnly|remove|require|resolve|rtti|runtime|runtimeValue|scalar|selfCall|setter|sound|sourceFile|stackOnly|strict|struct|structAccess|structInit|suppressWarnings|templatedCall|throws|to|transient|unifyMinDynamic|unreflective|unsafe|value|void|volatile)\\b)\\s*(\\()",
1144
+ "end": "\\)",
1145
+ "patterns": [
1146
+ {
1147
+ "include": "#block-contents"
1148
+ }
1149
+ ],
1150
+ "beginCaptures": {
1151
+ "1": {
1152
+ "name": "punctuation.metadata.hx"
1153
+ },
1154
+ "2": {
1155
+ "name": "storage.modifier.metadata.hx"
1156
+ },
1157
+ "3": {
1158
+ "name": "meta.brace.round.hx"
1159
+ }
1160
+ },
1161
+ "endCaptures": {
1162
+ "0": {
1163
+ "name": "meta.brace.round.hx"
1164
+ }
1165
+ }
1166
+ },
1167
+ {
1168
+ "match": "((@)(:(abi|abstract|access|allow|analyzer|annotation|arrayAccess|astSource|autoBuild|bind|bitmap|bridgeProperties|build|buildXml|callable|classCode|commutative|compilerGenerated|const|coreApi|coreType|cppFileCode|cppInclude|cppNamespaceCode|dce|debug|decl|delegate|depend|deprecated|eager|enum|event|expose|extern|fakeEnum|file|fileXml|final|fixed|font|forward|forwardStatics|from|functionCode|functionTailCode|generic|genericBuild|getter|hack|headerClassCode|headerCode|headerInclude|headerNamespaceCode|hxGen|ifFeature|include|internal|isVar|javaCanonical|jsRequire|keep|keepInit|keepSub|luaDotMethod|luaRequire|macro|mergeBlock|meta|multiReturn|multiType|native|nativeChildren|nativeGen|nativeProperty|nativeStaticExtension|noCompletion|noDebug|noDoc|noImportGlobal|noPrivateAccess|noStack|noUsing|nonVirtual|notNull|ns|objc|objcProtocol|op|optional|overload|phpConstants|phpGlobal|phpClassConst|phpMagic|phpNoConstructor|pos|privateAccess|property|protected|publicFields|pure|pythonImport|readOnly|remove|require|resolve|rtti|runtime|runtimeValue|scalar|selfCall|setter|sound|sourceFile|stackOnly|strict|struct|structAccess|structInit|suppressWarnings|templatedCall|throws|to|transient|unifyMinDynamic|unreflective|unsafe|value|void|volatile)\\b))",
1169
+ "captures": {
1170
+ "2": {
1171
+ "name": "punctuation.metadata.hx"
1172
+ },
1173
+ "3": {
1174
+ "name": "storage.modifier.metadata.hx"
1175
+ }
1176
+ }
1177
+ },
1178
+ {
1179
+ "begin": "(@)(:?[a-zA-Z_]*)\\s*(\\()",
1180
+ "end": "\\)",
1181
+ "patterns": [
1182
+ {
1183
+ "include": "#block-contents"
1184
+ }
1185
+ ],
1186
+ "beginCaptures": {
1187
+ "1": {
1188
+ "name": "punctuation.metadata.hx"
1189
+ },
1190
+ "2": {
1191
+ "name": "variable.metadata.hx"
1192
+ },
1193
+ "3": {
1194
+ "name": "meta.brace.round.hx"
1195
+ }
1196
+ },
1197
+ "endCaptures": {
1198
+ "0": {
1199
+ "name": "meta.brace.round.hx"
1200
+ }
1201
+ }
1202
+ },
1203
+ {
1204
+ "match": "(@)(:?[a-zA-Z_]*)",
1205
+ "captures": {
1206
+ "1": {
1207
+ "name": "punctuation.metadata.hx"
1208
+ },
1209
+ "2": {
1210
+ "name": "variable.metadata.hx"
1211
+ }
1212
+ }
1213
+ }
1214
+ ]
1215
+ },
1216
+ "method": {
1217
+ "name": "meta.method.hx",
1218
+ "begin": "(?=\\bfunction\\b)",
1219
+ "end": "(?\u003c=[\\};])",
1220
+ "patterns": [
1221
+ {
1222
+ "include": "#macro-reification"
1223
+ },
1224
+ {
1225
+ "include": "#method-name"
1226
+ },
1227
+ {
1228
+ "include": "#method-name-post"
1229
+ },
1230
+ {
1231
+ "include": "#method-block"
1232
+ }
1233
+ ]
1234
+ },
1235
+ "method-block": {
1236
+ "name": "meta.method.block.hx",
1237
+ "begin": "(?\u003c=\\{)",
1238
+ "end": "(\\})",
1239
+ "patterns": [
1240
+ {
1241
+ "include": "#block"
1242
+ },
1243
+ {
1244
+ "include": "#block-contents"
1245
+ }
1246
+ ],
1247
+ "beginCaptures": {
1248
+ "1": {
1249
+ "name": "punctuation.definition.block.begin.hx"
1250
+ }
1251
+ },
1252
+ "endCaptures": {
1253
+ "1": {
1254
+ "name": "punctuation.definition.block.end.hx"
1255
+ }
1256
+ }
1257
+ },
1258
+ "method-call": {
1259
+ "begin": "\\b(?:(__(?:addressOf|as|call|checked|cpp|cs|define_feature|delete|feature|field|fixed|foreach|forin|has_next|hkeys|in|int|is|java|js|keys|lock|lua|lua_table|new|php|physeq|prefix|ptr|resources|rethrow|set|setfield|sizeof|type|typeof|unprotect|unsafe|valueOf|var|vector|vmem_get|vmem_set|vmem_sign|instanceof|strict_eq|strict_neq)__)|([_a-z]\\w*))\\s*(\\()",
1260
+ "end": "(\\))",
1261
+ "patterns": [
1262
+ {
1263
+ "include": "#block"
1264
+ },
1265
+ {
1266
+ "include": "#block-contents"
1267
+ }
1268
+ ],
1269
+ "beginCaptures": {
1270
+ "1": {
1271
+ "name": "keyword.other.untyped-function.hx"
1272
+ },
1273
+ "2": {
1274
+ "name": "entity.name.function.hx"
1275
+ },
1276
+ "3": {
1277
+ "name": "meta.brace.round.hx"
1278
+ }
1279
+ },
1280
+ "endCaptures": {
1281
+ "1": {
1282
+ "name": "meta.brace.round.hx"
1283
+ }
1284
+ }
1285
+ },
1286
+ "method-name": {
1287
+ "begin": "\\b(function)\\b\\s*\\b(?:(new)|([_A-Za-z]\\w*))?\\b",
1288
+ "end": "(?=$|\\()",
1289
+ "patterns": [
1290
+ {
1291
+ "include": "#macro-reification"
1292
+ },
1293
+ {
1294
+ "include": "#type-parameters"
1295
+ }
1296
+ ],
1297
+ "beginCaptures": {
1298
+ "1": {
1299
+ "name": "storage.type.function.hx"
1300
+ },
1301
+ "2": {
1302
+ "name": "storage.type.hx"
1303
+ },
1304
+ "3": {
1305
+ "name": "entity.name.function.hx"
1306
+ }
1307
+ }
1308
+ },
1309
+ "method-name-post": {
1310
+ "begin": "(?\u003c=[\\w\\s\u003e])",
1311
+ "end": "(\\{)|(;)",
1312
+ "patterns": [
1313
+ {
1314
+ "include": "#parameters"
1315
+ },
1316
+ {
1317
+ "include": "#method-return-type-hint"
1318
+ },
1319
+ {
1320
+ "include": "#block"
1321
+ },
1322
+ {
1323
+ "include": "#block-contents"
1324
+ }
1325
+ ],
1326
+ "endCaptures": {
1327
+ "1": {
1328
+ "name": "punctuation.definition.block.begin.hx"
1329
+ },
1330
+ "2": {
1331
+ "name": "punctuation.terminator.hx"
1332
+ }
1333
+ }
1334
+ },
1335
+ "method-return-type-hint": {
1336
+ "begin": "(?\u003c=\\))\\s*(:)",
1337
+ "end": "(?=\\{|;|[a-z0-9])",
1338
+ "patterns": [
1339
+ {
1340
+ "include": "#type"
1341
+ }
1342
+ ],
1343
+ "beginCaptures": {
1344
+ "1": {
1345
+ "name": "keyword.operator.type.annotation.hx"
1346
+ }
1347
+ }
1348
+ },
1349
+ "modifiers": {
1350
+ "name": "storage.modifier.hx",
1351
+ "match": "\\b(public|private|static|dynamic|inline|macro|extern|override|final)\\b"
1352
+ },
1353
+ "modifiers-inheritance": {
1354
+ "name": "storage.modifier.hx",
1355
+ "match": "\\b(implements|extends)\\b"
1356
+ },
1357
+ "new-expr": {
1358
+ "name": "new.expr.hx",
1359
+ "begin": "(?\u003c!\\.)\\b(new)\\b",
1360
+ "end": "(?=$|\\()",
1361
+ "patterns": [
1362
+ {
1363
+ "include": "#type"
1364
+ }
1365
+ ],
1366
+ "beginCaptures": {
1367
+ "1": {
1368
+ "name": "keyword.operator.new.hx"
1369
+ }
1370
+ }
1371
+ },
1372
+ "operator-assignment": {
1373
+ "name": "keyword.operator.assignment.hx",
1374
+ "match": "(=)"
1375
+ },
1376
+ "operator-optional": {
1377
+ "name": "keyword.operator.optional.hx",
1378
+ "match": "(\\?)(?!\\s)"
1379
+ },
1380
+ "operator-type-hint": {
1381
+ "name": "keyword.operator.type.annotation.hx",
1382
+ "match": "(:)"
1383
+ },
1384
+ "operators": {
1385
+ "patterns": [
1386
+ {
1387
+ "name": "keyword.operator.logical.hx",
1388
+ "match": "(\u0026\u0026|\\|\\|)"
1389
+ },
1390
+ {
1391
+ "name": "keyword.operator.bitwise.hx",
1392
+ "match": "(~|\u0026|\\||\\^|\u003e\u003e\u003e|\u003c\u003c|\u003e\u003e)"
1393
+ },
1394
+ {
1395
+ "name": "keyword.operator.comparison.hx",
1396
+ "match": "(==|!=|\u003c=|\u003e=|\u003c|\u003e)"
1397
+ },
1398
+ {
1399
+ "name": "keyword.operator.logical.hx",
1400
+ "match": "(!)"
1401
+ },
1402
+ {
1403
+ "name": "keyword.operator.increment-decrement.hx",
1404
+ "match": "(\\-\\-|\\+\\+)"
1405
+ },
1406
+ {
1407
+ "name": "keyword.operator.arithmetic.hx",
1408
+ "match": "(\\-|\\+|\\*|\\/|%)"
1409
+ },
1410
+ {
1411
+ "name": "keyword.operator.intiterator.hx",
1412
+ "match": "\\.\\.\\."
1413
+ },
1414
+ {
1415
+ "begin": "\\?",
1416
+ "end": ":",
1417
+ "patterns": [
1418
+ {
1419
+ "include": "#block-contents"
1420
+ }
1421
+ ],
1422
+ "beginCaptures": {
1423
+ "0": {
1424
+ "name": "keyword.operator.ternary.hx"
1425
+ }
1426
+ },
1427
+ "endCaptures": {
1428
+ "0": {
1429
+ "name": "keyword.operator.ternary.hx"
1430
+ }
1431
+ }
1432
+ }
1433
+ ]
1434
+ },
1435
+ "package": {
1436
+ "name": "meta.package.hx",
1437
+ "match": "\\b(package)(\\s+([\\w.*]*))?\\s*(;)?",
1438
+ "captures": {
1439
+ "1": {
1440
+ "name": "storage.type.package.hx"
1441
+ },
1442
+ "2": {
1443
+ "name": "support.package.hx"
1444
+ },
1445
+ "4": {
1446
+ "name": "punctuation.terminator.hx"
1447
+ }
1448
+ }
1449
+ },
1450
+ "parameter": {
1451
+ "begin": "(?\u003c=\\(|,)",
1452
+ "end": "(?=\\)(?!\\s*-\u003e)|,)",
1453
+ "patterns": [
1454
+ {
1455
+ "include": "#parameter-name"
1456
+ },
1457
+ {
1458
+ "include": "#parameter-type-hint"
1459
+ },
1460
+ {
1461
+ "include": "#parameter-assign"
1462
+ },
1463
+ {
1464
+ "include": "#punctuation-comma"
1465
+ },
1466
+ {
1467
+ "include": "#global"
1468
+ }
1469
+ ]
1470
+ },
1471
+ "parameter-assign": {
1472
+ "begin": "=",
1473
+ "end": "(?=\\)|,)",
1474
+ "patterns": [
1475
+ {
1476
+ "include": "#block"
1477
+ },
1478
+ {
1479
+ "include": "#block-contents"
1480
+ }
1481
+ ],
1482
+ "beginCaptures": {
1483
+ "0": {
1484
+ "name": "keyword.operator.assignment.hx"
1485
+ }
1486
+ }
1487
+ },
1488
+ "parameter-name": {
1489
+ "begin": "(?\u003c=\\(|,)",
1490
+ "end": "([_a-zA-Z]\\w*)",
1491
+ "patterns": [
1492
+ {
1493
+ "include": "#global"
1494
+ },
1495
+ {
1496
+ "include": "#metadata"
1497
+ },
1498
+ {
1499
+ "include": "#operator-optional"
1500
+ }
1501
+ ],
1502
+ "endCaptures": {
1503
+ "1": {
1504
+ "name": "variable.parameter.hx"
1505
+ }
1506
+ }
1507
+ },
1508
+ "parameter-type-hint": {
1509
+ "begin": ":",
1510
+ "end": "(?=\\)(?!\\s*-\u003e)|,|=)",
1511
+ "patterns": [
1512
+ {
1513
+ "include": "#type"
1514
+ }
1515
+ ],
1516
+ "beginCaptures": {
1517
+ "0": {
1518
+ "name": "keyword.operator.type.annotation.hx"
1519
+ }
1520
+ }
1521
+ },
1522
+ "parameters": {
1523
+ "name": "meta.parameters.hx",
1524
+ "begin": "\\(",
1525
+ "end": "\\s*(\\)(?!\\s*-\u003e))",
1526
+ "patterns": [
1527
+ {
1528
+ "include": "#parameter"
1529
+ }
1530
+ ],
1531
+ "beginCaptures": {
1532
+ "0": {
1533
+ "name": "punctuation.definition.parameters.begin.hx"
1534
+ }
1535
+ },
1536
+ "endCaptures": {
1537
+ "1": {
1538
+ "name": "punctuation.definition.parameters.end.hx"
1539
+ }
1540
+ }
1541
+ },
1542
+ "punctuation-braces": {
1543
+ "begin": "\\(",
1544
+ "end": "\\)",
1545
+ "patterns": [
1546
+ {
1547
+ "include": "#keywords"
1548
+ },
1549
+ {
1550
+ "name": "keyword.other.hx",
1551
+ "match": "\\bis\\b(?!\\()"
1552
+ },
1553
+ {
1554
+ "include": "#block"
1555
+ },
1556
+ {
1557
+ "include": "#block-contents"
1558
+ },
1559
+ {
1560
+ "include": "#type-check"
1561
+ }
1562
+ ],
1563
+ "beginCaptures": {
1564
+ "0": {
1565
+ "name": "meta.brace.round.hx"
1566
+ }
1567
+ },
1568
+ "endCaptures": {
1569
+ "0": {
1570
+ "name": "meta.brace.round.hx"
1571
+ }
1572
+ }
1573
+ },
1574
+ "punctuation-comma": {
1575
+ "name": "punctuation.separator.comma.hx",
1576
+ "match": ","
1577
+ },
1578
+ "punctuation-terminator": {
1579
+ "name": "punctuation.terminator.hx",
1580
+ "match": ";"
1581
+ },
1582
+ "regex": {
1583
+ "name": "string.regexp.hx",
1584
+ "begin": "(~/)",
1585
+ "end": "(/)([gimsu]*)",
1586
+ "patterns": [
1587
+ {
1588
+ "include": "#regexp"
1589
+ }
1590
+ ],
1591
+ "beginCaptures": {
1592
+ "1": {
1593
+ "name": "punctuation.definition.string.begin.hx"
1594
+ }
1595
+ },
1596
+ "endCaptures": {
1597
+ "1": {
1598
+ "name": "punctuation.definition.string.end.hx"
1599
+ },
1600
+ "2": {
1601
+ "name": "keyword.other.hx"
1602
+ }
1603
+ }
1604
+ },
1605
+ "regex-character-class": {
1606
+ "patterns": [
1607
+ {
1608
+ "name": "constant.other.character-class.regexp",
1609
+ "match": "\\\\[wWsSdDtrnvf]|\\."
1610
+ },
1611
+ {
1612
+ "name": "constant.character.numeric.regexp",
1613
+ "match": "\\\\([0-7]{3}|x[[:xdigit:]][[:xdigit:]]|u[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]])"
1614
+ },
1615
+ {
1616
+ "name": "constant.character.control.regexp",
1617
+ "match": "\\\\c[A-Z]"
1618
+ },
1619
+ {
1620
+ "name": "constant.character.escape.backslash.regexp",
1621
+ "match": "\\\\."
1622
+ }
1623
+ ]
1624
+ },
1625
+ "regexp": {
1626
+ "patterns": [
1627
+ {
1628
+ "name": "keyword.control.anchor.regexp",
1629
+ "match": "\\\\[bB]|\\^|\\$"
1630
+ },
1631
+ {
1632
+ "name": "keyword.other.back-reference.regexp",
1633
+ "match": "\\\\[1-9]\\d*"
1634
+ },
1635
+ {
1636
+ "name": "keyword.operator.quantifier.regexp",
1637
+ "match": "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??"
1638
+ },
1639
+ {
1640
+ "name": "keyword.operator.or.regexp",
1641
+ "match": "\\|"
1642
+ },
1643
+ {
1644
+ "name": "meta.group.assertion.regexp",
1645
+ "begin": "(\\()((\\?=)|(\\?!))",
1646
+ "end": "(\\))",
1647
+ "patterns": [
1648
+ {
1649
+ "include": "#regexp"
1650
+ }
1651
+ ],
1652
+ "beginCaptures": {
1653
+ "1": {
1654
+ "name": "punctuation.definition.group.regexp"
1655
+ },
1656
+ "2": {
1657
+ "name": "punctuation.definition.group.assertion.regexp"
1658
+ },
1659
+ "3": {
1660
+ "name": "meta.assertion.look-ahead.regexp"
1661
+ },
1662
+ "4": {
1663
+ "name": "meta.assertion.negative-look-ahead.regexp"
1664
+ }
1665
+ },
1666
+ "endCaptures": {
1667
+ "1": {
1668
+ "name": "punctuation.definition.group.regexp"
1669
+ }
1670
+ }
1671
+ },
1672
+ {
1673
+ "name": "meta.group.regexp",
1674
+ "begin": "\\((\\?:)?",
1675
+ "end": "\\)",
1676
+ "patterns": [
1677
+ {
1678
+ "include": "#regexp"
1679
+ }
1680
+ ],
1681
+ "beginCaptures": {
1682
+ "0": {
1683
+ "name": "punctuation.definition.group.regexp"
1684
+ },
1685
+ "1": {
1686
+ "name": "punctuation.definition.group.capture.regexp"
1687
+ }
1688
+ },
1689
+ "endCaptures": {
1690
+ "0": {
1691
+ "name": "punctuation.definition.group.regexp"
1692
+ }
1693
+ }
1694
+ },
1695
+ {
1696
+ "name": "constant.other.character-class.set.regexp",
1697
+ "begin": "(\\[)(\\^)?",
1698
+ "end": "(\\])",
1699
+ "patterns": [
1700
+ {
1701
+ "name": "constant.other.character-class.range.regexp",
1702
+ "match": "(?:.|(\\\\(?:[0-7]{3}|x[[:xdigit:]][[:xdigit:]]|u[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[[:xdigit:]][[:xdigit:]]|u[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]))|(\\\\c[A-Z])|(\\\\.))",
1703
+ "captures": {
1704
+ "1": {
1705
+ "name": "constant.character.numeric.regexp"
1706
+ },
1707
+ "2": {
1708
+ "name": "constant.character.control.regexp"
1709
+ },
1710
+ "3": {
1711
+ "name": "constant.character.escape.backslash.regexp"
1712
+ },
1713
+ "4": {
1714
+ "name": "constant.character.numeric.regexp"
1715
+ },
1716
+ "5": {
1717
+ "name": "constant.character.control.regexp"
1718
+ },
1719
+ "6": {
1720
+ "name": "constant.character.escape.backslash.regexp"
1721
+ }
1722
+ }
1723
+ },
1724
+ {
1725
+ "include": "#regex-character-class"
1726
+ }
1727
+ ],
1728
+ "beginCaptures": {
1729
+ "1": {
1730
+ "name": "punctuation.definition.character-class.regexp"
1731
+ },
1732
+ "2": {
1733
+ "name": "keyword.operator.negation.regexp"
1734
+ }
1735
+ },
1736
+ "endCaptures": {
1737
+ "1": {
1738
+ "name": "punctuation.definition.character-class.regexp"
1739
+ }
1740
+ }
1741
+ },
1742
+ {
1743
+ "include": "#regex-character-class"
1744
+ }
1745
+ ]
1746
+ },
1747
+ "string-escape-sequences": {
1748
+ "patterns": [
1749
+ {
1750
+ "name": "constant.character.escape.hx",
1751
+ "match": "\\\\[0-3][0-9]{2}"
1752
+ },
1753
+ {
1754
+ "name": "constant.character.escape.hx",
1755
+ "match": "\\\\x[0-9A-Fa-f]{2}"
1756
+ },
1757
+ {
1758
+ "name": "constant.character.escape.hx",
1759
+ "match": "\\\\u[0-9]{4}"
1760
+ },
1761
+ {
1762
+ "name": "constant.character.escape.hx",
1763
+ "match": "\\\\u\\{[0-9A-Fa-f]{1,}\\}"
1764
+ },
1765
+ {
1766
+ "name": "constant.character.escape.hx",
1767
+ "match": "\\\\[nrt\"'\\\\]"
1768
+ },
1769
+ {
1770
+ "name": "invalid.escape.sequence.hx",
1771
+ "match": "\\\\."
1772
+ }
1773
+ ]
1774
+ },
1775
+ "strings": {
1776
+ "patterns": [
1777
+ {
1778
+ "name": "string.quoted.double.hx",
1779
+ "begin": "\"",
1780
+ "end": "\"",
1781
+ "patterns": [
1782
+ {
1783
+ "include": "#string-escape-sequences"
1784
+ }
1785
+ ],
1786
+ "beginCaptures": {
1787
+ "0": {
1788
+ "name": "punctuation.definition.string.begin.hx"
1789
+ }
1790
+ },
1791
+ "endCaptures": {
1792
+ "0": {
1793
+ "name": "punctuation.definition.string.end.hx"
1794
+ }
1795
+ }
1796
+ },
1797
+ {
1798
+ "begin": "(')",
1799
+ "end": "(')",
1800
+ "patterns": [
1801
+ {
1802
+ "name": "string.quoted.single.hx",
1803
+ "begin": "\\$(?=\\$)",
1804
+ "end": "\\$",
1805
+ "beginCaptures": {
1806
+ "0": {
1807
+ "name": "constant.character.escape.hx"
1808
+ }
1809
+ },
1810
+ "endCaptures": {
1811
+ "0": {
1812
+ "name": "constant.character.escape.hx"
1813
+ }
1814
+ }
1815
+ },
1816
+ {
1817
+ "include": "#string-escape-sequences"
1818
+ },
1819
+ {
1820
+ "begin": "(\\${)",
1821
+ "end": "(})",
1822
+ "patterns": [
1823
+ {
1824
+ "include": "#block-contents"
1825
+ }
1826
+ ],
1827
+ "beginCaptures": {
1828
+ "0": {
1829
+ "name": "punctuation.definition.block.begin.hx"
1830
+ }
1831
+ },
1832
+ "endCaptures": {
1833
+ "0": {
1834
+ "name": "punctuation.definition.block.end.hx"
1835
+ }
1836
+ }
1837
+ },
1838
+ {
1839
+ "match": "(\\$)([_a-zA-Z]\\w*)",
1840
+ "captures": {
1841
+ "1": {
1842
+ "name": "punctuation.definition.block.begin.hx"
1843
+ },
1844
+ "2": {
1845
+ "name": "variable.other.hx"
1846
+ }
1847
+ }
1848
+ },
1849
+ {
1850
+ "name": "constant.character.escape.hx"
1851
+ },
1852
+ {
1853
+ "name": "string.quoted.single.hx",
1854
+ "match": "."
1855
+ }
1856
+ ],
1857
+ "beginCaptures": {
1858
+ "0": {
1859
+ "name": "string.quoted.single.hx"
1860
+ },
1861
+ "1": {
1862
+ "name": "punctuation.definition.string.begin.hx"
1863
+ }
1864
+ },
1865
+ "endCaptures": {
1866
+ "0": {
1867
+ "name": "string.quoted.single.hx"
1868
+ },
1869
+ "1": {
1870
+ "name": "punctuation.definition.string.end.hx"
1871
+ }
1872
+ }
1873
+ }
1874
+ ]
1875
+ },
1876
+ "type": {
1877
+ "patterns": [
1878
+ {
1879
+ "include": "#global"
1880
+ },
1881
+ {
1882
+ "include": "#macro-reification"
1883
+ },
1884
+ {
1885
+ "include": "#type-name"
1886
+ },
1887
+ {
1888
+ "include": "#type-parameters"
1889
+ },
1890
+ {
1891
+ "name": "keyword.operator.type.function.hx",
1892
+ "match": "-\u003e"
1893
+ },
1894
+ {
1895
+ "begin": "(\\{)",
1896
+ "end": "(?\u003c=\\})",
1897
+ "patterns": [
1898
+ {
1899
+ "include": "#typedef-block"
1900
+ }
1901
+ ],
1902
+ "beginCaptures": {
1903
+ "0": {
1904
+ "name": "punctuation.definition.block.begin.hx"
1905
+ }
1906
+ }
1907
+ },
1908
+ {
1909
+ "include": "#function-type"
1910
+ }
1911
+ ]
1912
+ },
1913
+ "type-check": {
1914
+ "begin": "(?\u003c!macro)(?=:)",
1915
+ "end": "(?=\\))",
1916
+ "patterns": [
1917
+ {
1918
+ "include": "#operator-type-hint"
1919
+ },
1920
+ {
1921
+ "include": "#type"
1922
+ }
1923
+ ]
1924
+ },
1925
+ "type-name": {
1926
+ "patterns": [
1927
+ {
1928
+ "match": "\\b(Any|Array|ArrayAccess|Bool|Class|Date|DateTools|Dynamic|Enum|EnumValue|EReg|Float|IMap|Int|IntIterator|Iterable|Iterator|Lambda|List|ListIterator|ListNode|Map|Math|Null|Reflect|Single|Std|String|StringBuf|StringTools|Sys|Type|UInt|ValueType|Void|Xml|XmlType)(?:(\\.)(_*[A-Z]\\w*[a-z]\\w*))*\\b",
1929
+ "captures": {
1930
+ "1": {
1931
+ "name": "support.class.builtin.hx"
1932
+ },
1933
+ "2": {
1934
+ "name": "support.package.hx"
1935
+ },
1936
+ "3": {
1937
+ "name": "entity.name.type.hx"
1938
+ }
1939
+ }
1940
+ },
1941
+ {
1942
+ "match": "\\b(?\u003c!\\.)((_*[a-z]\\w*\\.)*)(_*[A-Z]\\w*)(?:(\\.)(_*[A-Z]\\w*[a-z]\\w*))*\\b",
1943
+ "captures": {
1944
+ "1": {
1945
+ "name": "support.package.hx"
1946
+ },
1947
+ "3": {
1948
+ "name": "entity.name.type.hx"
1949
+ },
1950
+ "4": {
1951
+ "name": "support.package.hx"
1952
+ },
1953
+ "5": {
1954
+ "name": "entity.name.type.hx"
1955
+ }
1956
+ }
1957
+ }
1958
+ ]
1959
+ },
1960
+ "type-parameter-constraint": {
1961
+ "begin": "(:)\\s*(\\()",
1962
+ "end": "\\)",
1963
+ "patterns": [
1964
+ {
1965
+ "include": "#type"
1966
+ },
1967
+ {
1968
+ "include": "#punctuation-comma"
1969
+ }
1970
+ ],
1971
+ "beginCaptures": {
1972
+ "1": {
1973
+ "name": "keyword.operator.type.annotation.hx"
1974
+ },
1975
+ "2": {
1976
+ "name": "punctuation.definition.constraint.begin.hx"
1977
+ }
1978
+ },
1979
+ "endCaptures": {
1980
+ "0": {
1981
+ "name": "punctuation.definition.constraint.end.hx"
1982
+ }
1983
+ }
1984
+ },
1985
+ "type-parameters": {
1986
+ "name": "meta.type-parameters.hx",
1987
+ "begin": "(\u003c)",
1988
+ "end": "(?=$)|(\u003e)",
1989
+ "patterns": [
1990
+ {
1991
+ "include": "#type"
1992
+ },
1993
+ {
1994
+ "include": "#type-parameter-constraint"
1995
+ },
1996
+ {
1997
+ "include": "#global"
1998
+ },
1999
+ {
2000
+ "include": "#regex"
2001
+ },
2002
+ {
2003
+ "include": "#array"
2004
+ },
2005
+ {
2006
+ "include": "#constants"
2007
+ },
2008
+ {
2009
+ "include": "#strings"
2010
+ },
2011
+ {
2012
+ "include": "#metadata"
2013
+ },
2014
+ {
2015
+ "include": "#punctuation-comma"
2016
+ }
2017
+ ],
2018
+ "beginCaptures": {
2019
+ "1": {
2020
+ "name": "punctuation.definition.typeparameters.begin.hx"
2021
+ }
2022
+ },
2023
+ "endCaptures": {
2024
+ "1": {
2025
+ "name": "punctuation.definition.typeparameters.end.hx"
2026
+ }
2027
+ }
2028
+ },
2029
+ "typedef": {
2030
+ "name": "meta.typedef.hx",
2031
+ "begin": "(?=typedef)",
2032
+ "end": "(?\u003c=\\})|(;)",
2033
+ "patterns": [
2034
+ {
2035
+ "include": "#typedef-name"
2036
+ },
2037
+ {
2038
+ "include": "#typedef-name-post"
2039
+ },
2040
+ {
2041
+ "include": "#typedef-block"
2042
+ }
2043
+ ],
2044
+ "endCaptures": {
2045
+ "1": {
2046
+ "name": "punctuation.terminator.hx"
2047
+ }
2048
+ }
2049
+ },
2050
+ "typedef-block": {
2051
+ "name": "meta.block.hx",
2052
+ "begin": "(?\u003c=\\{)",
2053
+ "end": "(\\})",
2054
+ "patterns": [
2055
+ {
2056
+ "include": "#global"
2057
+ },
2058
+ {
2059
+ "include": "#metadata"
2060
+ },
2061
+ {
2062
+ "include": "#method"
2063
+ },
2064
+ {
2065
+ "include": "#variable"
2066
+ },
2067
+ {
2068
+ "include": "#modifiers"
2069
+ },
2070
+ {
2071
+ "include": "#punctuation-comma"
2072
+ },
2073
+ {
2074
+ "include": "#operator-optional"
2075
+ },
2076
+ {
2077
+ "include": "#typedef-extension"
2078
+ },
2079
+ {
2080
+ "include": "#typedef-simple-field-type-hint"
2081
+ },
2082
+ {
2083
+ "include": "#identifier-name"
2084
+ },
2085
+ {
2086
+ "include": "#strings"
2087
+ }
2088
+ ],
2089
+ "endCaptures": {
2090
+ "1": {
2091
+ "name": "punctuation.definition.block.end.hx"
2092
+ }
2093
+ }
2094
+ },
2095
+ "typedef-extension": {
2096
+ "begin": "\u003e",
2097
+ "end": ",",
2098
+ "patterns": [
2099
+ {
2100
+ "include": "#type"
2101
+ }
2102
+ ]
2103
+ },
2104
+ "typedef-name": {
2105
+ "begin": "\\b(typedef)\\b",
2106
+ "end": "([_A-Za-z]\\w*)",
2107
+ "patterns": [
2108
+ {
2109
+ "include": "#global"
2110
+ }
2111
+ ],
2112
+ "beginCaptures": {
2113
+ "1": {
2114
+ "name": "storage.type.class.hx"
2115
+ }
2116
+ },
2117
+ "endCaptures": {
2118
+ "1": {
2119
+ "name": "entity.name.type.class.hx"
2120
+ }
2121
+ }
2122
+ },
2123
+ "typedef-name-post": {
2124
+ "begin": "(?\u003c=\\w)",
2125
+ "end": "(\\{)|(?=;)",
2126
+ "patterns": [
2127
+ {
2128
+ "include": "#global"
2129
+ },
2130
+ {
2131
+ "include": "#punctuation-brackets"
2132
+ },
2133
+ {
2134
+ "include": "#punctuation-separator"
2135
+ },
2136
+ {
2137
+ "include": "#operator-assignment"
2138
+ },
2139
+ {
2140
+ "include": "#type"
2141
+ }
2142
+ ],
2143
+ "endCaptures": {
2144
+ "1": {
2145
+ "name": "punctuation.definition.block.begin.hx"
2146
+ }
2147
+ }
2148
+ },
2149
+ "typedef-simple-field-type-hint": {
2150
+ "begin": ":",
2151
+ "end": "(?=\\}|,|;)",
2152
+ "patterns": [
2153
+ {
2154
+ "include": "#type"
2155
+ }
2156
+ ],
2157
+ "beginCaptures": {
2158
+ "0": {
2159
+ "name": "keyword.operator.type.annotation.hx"
2160
+ }
2161
+ }
2162
+ },
2163
+ "using": {
2164
+ "match": "(using)\\s+((?:_*[a-z]\\w*\\.?)*)((?:_*[A-Z]\\w*\\.?)+)?(;)?",
2165
+ "captures": {
2166
+ "1": {
2167
+ "name": "storage.type.using.hx"
2168
+ },
2169
+ "2": {
2170
+ "name": "support.package.hx"
2171
+ },
2172
+ "3": {
2173
+ "name": "entity.name.type.hx"
2174
+ },
2175
+ "4": {
2176
+ "name": "punctuation.terminator.hx"
2177
+ }
2178
+ }
2179
+ },
2180
+ "variable": {
2181
+ "begin": "(?=\\bvar\\b)",
2182
+ "end": "(?=$)|(;)",
2183
+ "patterns": [
2184
+ {
2185
+ "include": "#variable-name"
2186
+ },
2187
+ {
2188
+ "include": "#variable-name-next"
2189
+ },
2190
+ {
2191
+ "include": "#variable-assign"
2192
+ },
2193
+ {
2194
+ "include": "#variable-name-post"
2195
+ }
2196
+ ],
2197
+ "endCaptures": {
2198
+ "1": {
2199
+ "name": "punctuation.terminator.hx"
2200
+ }
2201
+ }
2202
+ },
2203
+ "variable-accessors": {
2204
+ "name": "meta.parameters.hx",
2205
+ "begin": "\\(",
2206
+ "end": "\\)",
2207
+ "patterns": [
2208
+ {
2209
+ "include": "#keywords-accessor"
2210
+ },
2211
+ {
2212
+ "include": "#accessor-method"
2213
+ },
2214
+ {
2215
+ "include": "#punctuation-comma"
2216
+ }
2217
+ ],
2218
+ "beginCaptures": {
2219
+ "0": {
2220
+ "name": "punctuation.definition.parameters.begin.hx"
2221
+ }
2222
+ },
2223
+ "endCaptures": {
2224
+ "0": {
2225
+ "name": "punctuation.definition.parameters.end.hx"
2226
+ }
2227
+ }
2228
+ },
2229
+ "variable-assign": {
2230
+ "begin": "=",
2231
+ "end": "(?=;|,)",
2232
+ "patterns": [
2233
+ {
2234
+ "include": "#block"
2235
+ },
2236
+ {
2237
+ "include": "#block-contents"
2238
+ }
2239
+ ],
2240
+ "beginCaptures": {
2241
+ "0": {
2242
+ "name": "keyword.operator.assignment.hx"
2243
+ }
2244
+ }
2245
+ },
2246
+ "variable-name": {
2247
+ "begin": "\\b(var)\\b",
2248
+ "end": "(?=$)|([_a-zA-Z]\\w*)",
2249
+ "beginCaptures": {
2250
+ "1": {
2251
+ "name": "storage.type.variable.hx"
2252
+ }
2253
+ },
2254
+ "endCaptures": {
2255
+ "1": {
2256
+ "name": "variable.other.hx"
2257
+ }
2258
+ }
2259
+ },
2260
+ "variable-name-next": {
2261
+ "begin": ",",
2262
+ "end": "([_a-zA-Z]\\w*)",
2263
+ "patterns": [
2264
+ {
2265
+ "include": "#global"
2266
+ }
2267
+ ],
2268
+ "beginCaptures": {
2269
+ "0": {
2270
+ "name": "punctuation.separator.comma.hx"
2271
+ }
2272
+ },
2273
+ "endCaptures": {
2274
+ "1": {
2275
+ "name": "variable.other.hx"
2276
+ }
2277
+ }
2278
+ },
2279
+ "variable-name-post": {
2280
+ "begin": "(?\u003c=\\w)",
2281
+ "end": "(?=;)|(?==)",
2282
+ "patterns": [
2283
+ {
2284
+ "include": "#variable-accessors"
2285
+ },
2286
+ {
2287
+ "include": "#variable-type-hint"
2288
+ },
2289
+ {
2290
+ "include": "#block-contents"
2291
+ }
2292
+ ]
2293
+ },
2294
+ "variable-type-hint": {
2295
+ "begin": ":",
2296
+ "end": "(?=$|;|,|=)",
2297
+ "patterns": [
2298
+ {
2299
+ "include": "#type"
2300
+ }
2301
+ ],
2302
+ "beginCaptures": {
2303
+ "0": {
2304
+ "name": "keyword.operator.type.annotation.hx"
2305
+ }
2306
+ }
2307
+ }
2308
+ }
2309
+ }