github-linguist 5.2.0 → 5.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (84) hide show
  1. checksums.yaml +4 -4
  2. data/grammars/annotation.liquidhaskell.haskell.json +1445 -0
  3. data/grammars/hint.haskell.json +134 -17
  4. data/grammars/hint.message.haskell.json +134 -17
  5. data/grammars/hint.type.haskell.json +134 -17
  6. data/grammars/source.abl.json +48 -48
  7. data/grammars/source.afm.json +8 -1
  8. data/grammars/source.angelscript.json +195 -0
  9. data/grammars/source.ats.json +128 -58
  10. data/grammars/source.awk.json +138 -138
  11. data/grammars/source.ballerina.json +434 -0
  12. data/grammars/source.chapel.json +1 -1
  13. data/grammars/source.clips.json +20 -20
  14. data/grammars/source.cobol.json +4 -3
  15. data/grammars/source.coffee.json +556 -109
  16. data/grammars/source.cs.json +10 -5
  17. data/grammars/source.csound-document.json +1 -1
  18. data/grammars/source.csound-score.json +9 -9
  19. data/grammars/source.csound.json +23 -28
  20. data/grammars/source.css.json +6 -5
  21. data/grammars/source.data-weave.json +1584 -0
  22. data/grammars/source.elixir.json +3 -61
  23. data/grammars/source.elm.json +88 -88
  24. data/grammars/source.emacs.lisp.json +12 -1
  25. data/grammars/source.haskell.json +134 -17
  26. data/grammars/source.hsig.json +1376 -0
  27. data/grammars/source.httpspec.json +128 -128
  28. data/grammars/source.jison.json +6 -14
  29. data/grammars/source.jisonlex.json +1 -9
  30. data/grammars/source.js.json +1 -0
  31. data/grammars/source.js.regexp.json +0 -4
  32. data/grammars/source.js.regexp.replacement.json +0 -4
  33. data/grammars/source.jsdoc.json +3 -3
  34. data/grammars/source.lsl.json +146 -53
  35. data/grammars/source.mercury.json +166 -166
  36. data/grammars/source.ne.json +108 -0
  37. data/grammars/source.nim_filter.json +51 -51
  38. data/grammars/source.nut.json +266 -0
  39. data/grammars/source.opal.json +112 -112
  40. data/grammars/source.opalsysdefs.json +16 -16
  41. data/grammars/source.pan.json +1 -1
  42. data/grammars/source.papyrus.skyrim.json +720 -720
  43. data/grammars/source.pawn.json +2 -2
  44. data/grammars/source.prolog.eclipse.json +42 -42
  45. data/grammars/source.prolog.json +41 -41
  46. data/grammars/source.purescript.json +41 -25
  47. data/grammars/source.python.json +47 -34
  48. data/grammars/source.racket.json +54 -54
  49. data/grammars/source.reason.json +37 -3
  50. data/grammars/source.regexp.python.json +31 -0
  51. data/grammars/source.ruby.gemfile.json +27 -0
  52. data/grammars/source.ruby.json +1057 -356
  53. data/grammars/source.rust.json +1 -1
  54. data/grammars/source.sbt.json +13 -3
  55. data/grammars/source.scala.json +74 -55
  56. data/grammars/source.shaderlab.json +1 -1
  57. data/grammars/source.shell.json +26 -21
  58. data/grammars/source.shen.json +91 -91
  59. data/grammars/source.sqf.json +1 -1
  60. data/grammars/source.supercollider.json +1 -1
  61. data/grammars/source.swift.json +4 -0
  62. data/grammars/source.terra.json +36 -37
  63. data/grammars/source.terraform.json +98 -98
  64. data/grammars/source.ts.json +2231 -1677
  65. data/grammars/source.tsx.json +142 -3520
  66. data/grammars/source.vbnet.json +201 -263
  67. data/grammars/source.viml.json +2 -2
  68. data/grammars/source.wdl.json +200 -0
  69. data/grammars/source.yaml.json +34 -16
  70. data/grammars/text.find-refs.json +3 -3
  71. data/grammars/text.haml.json +1 -1
  72. data/grammars/text.html.abl.json +6 -6
  73. data/grammars/text.html.erb.json +8 -11
  74. data/grammars/text.html.php.blade.json +256 -220
  75. data/grammars/text.html.vue.json +1 -1
  76. data/grammars/text.slim.json +31 -17
  77. data/grammars/text.tex.latex.haskell.json +150 -33
  78. data/lib/linguist/heuristics.rb +8 -0
  79. data/lib/linguist/languages.json +1 -1
  80. data/lib/linguist/languages.yml +82 -26
  81. data/lib/linguist/samples.json +134512 -132868
  82. data/lib/linguist/vendor.yml +3 -0
  83. data/lib/linguist/version.rb +1 -1
  84. metadata +13 -4
@@ -626,12 +626,12 @@
626
626
  "patterns": [
627
627
  {
628
628
  "begin": "///",
629
- "captures": {
629
+ "beginCaptures": {
630
630
  "0": {
631
631
  "name": "punctuation.definition.comment.cs"
632
632
  }
633
633
  },
634
- "end": "$\\n?",
634
+ "end": "$",
635
635
  "name": "comment.block.documentation.cs",
636
636
  "patterns": [
637
637
  {
@@ -641,22 +641,27 @@
641
641
  },
642
642
  {
643
643
  "begin": "/\\*",
644
- "captures": {
644
+ "beginCaptures": {
645
645
  "0": {
646
646
  "name": "punctuation.definition.comment.cs"
647
647
  }
648
648
  },
649
649
  "end": "\\*/",
650
+ "endCaptures": {
651
+ "0": {
652
+ "name": "punctuation.definition.comment.cs"
653
+ }
654
+ },
650
655
  "name": "comment.block.cs"
651
656
  },
652
657
  {
653
658
  "begin": "//",
654
- "captures": {
659
+ "beginCaptures": {
655
660
  "1": {
656
661
  "name": "punctuation.definition.comment.cs"
657
662
  }
658
663
  },
659
- "end": "$\\n?",
664
+ "end": "$",
660
665
  "name": "comment.line.double-slash.cs"
661
666
  }
662
667
  ]
@@ -175,7 +175,7 @@
175
175
  {
176
176
  "name": "comment.line.cabbage-gui.csound-document",
177
177
  "begin": ";",
178
- "end": "(?=\\n)",
178
+ "end": "$",
179
179
  "beginCaptures": {
180
180
  "0": {
181
181
  "name": "punctuation.definition.comment.line.cabbage-gui.csound-document"
@@ -37,7 +37,7 @@
37
37
  },
38
38
  {
39
39
  "begin": "(m)|(n)",
40
- "end": "\\n",
40
+ "end": "$",
41
41
  "beginCaptures": {
42
42
  "1": {
43
43
  "name": "keyword.mark.preprocessor.csound-score"
@@ -58,7 +58,7 @@
58
58
  },
59
59
  {
60
60
  "begin": "r\\b",
61
- "end": "\\n",
61
+ "end": "$",
62
62
  "beginCaptures": {
63
63
  "0": {
64
64
  "name": "keyword.repeat-section.preprocessor.csound-score"
@@ -70,7 +70,7 @@
70
70
  },
71
71
  {
72
72
  "begin": "\\d+",
73
- "end": "(?=\\n)",
73
+ "end": "$",
74
74
  "beginCaptures": {
75
75
  "0": {
76
76
  "name": "constant.numeric.integer.decimal.csound-score"
@@ -120,23 +120,23 @@
120
120
  "end": "\\}",
121
121
  "beginCaptures": {
122
122
  "0": {
123
- "name": "punctuation.csound-score"
123
+ "name": "punctuation.braced-loop.begin.csound-score"
124
124
  }
125
125
  },
126
126
  "endCaptures": {
127
127
  "0": {
128
- "name": "punctuation.csound-score"
128
+ "name": "punctuation.braced-loop.end.csound-score"
129
129
  }
130
130
  },
131
131
  "patterns": [
132
132
  {
133
133
  "name": "meta.braced-loop-details.csound-score",
134
134
  "begin": "\\G",
135
- "end": "(?=\\n)",
135
+ "end": "$",
136
136
  "patterns": [
137
137
  {
138
138
  "begin": "\\d+",
139
- "end": "(?=\\n)",
139
+ "end": "$",
140
140
  "beginCaptures": {
141
141
  "0": {
142
142
  "name": "constant.numeric.integer.decimal.csound-score"
@@ -145,7 +145,7 @@
145
145
  "patterns": [
146
146
  {
147
147
  "begin": "[A-Z_a-z]\\w*\\b",
148
- "end": "(?=\\n)",
148
+ "end": "$",
149
149
  "beginCaptures": {
150
150
  "0": {
151
151
  "name": "entity.name.function.preprocessor.csound-score"
@@ -180,7 +180,7 @@
180
180
  ]
181
181
  },
182
182
  {
183
- "begin": "\\n",
183
+ "begin": "^",
184
184
  "end": "(?=\\})",
185
185
  "patterns": [
186
186
  {
@@ -22,7 +22,7 @@
22
22
  {
23
23
  "name": "meta.instrument-declaration.csound",
24
24
  "begin": "instr",
25
- "end": "\\n",
25
+ "end": "$",
26
26
  "beginCaptures": {
27
27
  "0": {
28
28
  "name": "keyword.function.csound"
@@ -62,7 +62,7 @@
62
62
  {
63
63
  "name": "meta.opcode-declaration.csound",
64
64
  "begin": "opcode",
65
- "end": "\\n",
65
+ "end": "$",
66
66
  "beginCaptures": {
67
67
  "0": {
68
68
  "name": "keyword.function.csound"
@@ -72,7 +72,7 @@
72
72
  {
73
73
  "name": "meta.opcode-details.csound",
74
74
  "begin": "[A-Z_a-z]\\w*\\b",
75
- "end": "(?=\\n)",
75
+ "end": "$",
76
76
  "beginCaptures": {
77
77
  "0": {
78
78
  "name": "entity.name.function.opcode.csound"
@@ -81,8 +81,8 @@
81
81
  "patterns": [
82
82
  {
83
83
  "name": "meta.opcode-type-signature.csound",
84
- "begin": "0|[afijkKoOpPStV\\[\\]]+",
85
- "end": ",|(?=\\n)",
84
+ "begin": "\\b(?:0|[afijkKoOpPStV\\[\\]]+)",
85
+ "end": ",|$",
86
86
  "beginCaptures": {
87
87
  "0": {
88
88
  "name": "storage.type.csound"
@@ -153,7 +153,7 @@
153
153
  {
154
154
  "name": "comment.line.double-slash.csound",
155
155
  "begin": "//",
156
- "end": "(?=\\n)",
156
+ "end": "$",
157
157
  "beginCaptures": {
158
158
  "0": {
159
159
  "name": "punctuation.definition.comment.csound"
@@ -173,7 +173,7 @@
173
173
  {
174
174
  "name": "comment.line.semicolon.csound",
175
175
  "begin": ";",
176
- "end": "(?=\\n)",
176
+ "end": "$",
177
177
  "beginCaptures": {
178
178
  "0": {
179
179
  "name": "punctuation.definition.comment.csound"
@@ -246,23 +246,18 @@
246
246
  "lineContinuations": {
247
247
  "patterns": [
248
248
  {
249
- "name": "meta.line-continuation.csound",
250
- "begin": "\\\\",
251
- "end": "\\n",
252
- "beginCaptures": {
253
- "0": {
249
+ "match": "(\\\\)[ \\t]*((;).*)?$",
250
+ "captures": {
251
+ "1": {
254
252
  "name": "constant.character.escape.line-continuation.csound"
255
- }
256
- },
257
- "patterns": [
258
- {
259
- "include": "#semicolonComments"
260
253
  },
261
- {
262
- "name": "invalid.illegal.csound",
263
- "match": "\\S+"
254
+ "2": {
255
+ "name": "comment.line.semicolon.csound"
256
+ },
257
+ "3": {
258
+ "name": "punctuation.definition.comment.csound"
264
259
  }
265
- ]
260
+ }
266
261
  }
267
262
  ]
268
263
  },
@@ -411,7 +406,7 @@
411
406
  "include": "#preprocessorDirectives"
412
407
  },
413
408
  {
414
- "name": "variable.other.readwrite.global.csound",
409
+ "name": "variable.language.csound",
415
410
  "match": "\\b(?:0dbfs|A4|k(?:r|smps)|nchnls(?:_i)?|sr)\\b"
416
411
  },
417
412
  {
@@ -440,7 +435,7 @@
440
435
  },
441
436
  {
442
437
  "begin": "\\b((?:c(?:g|in?|k|nk?)goto)|goto|igoto|kgoto|loop_[gl][et]|r(?:einit|igoto)|ti(?:goto|mout))\\b",
443
- "end": "(\\w+)\\s*(?:((//).*)|((;).*))?\\n",
438
+ "end": "(\\w+)\\s*(?:((//).*)|((;).*))?$",
444
439
  "beginCaptures": {
445
440
  "1": {
446
441
  "name": "keyword.control.csound"
@@ -515,7 +510,7 @@
515
510
  },
516
511
  {
517
512
  "name": "invalid.illegal.csound",
518
- "match": "[^\"\\\\\\n]*\\n"
513
+ "match": "[^\"\\\\]*[^\\n\"\\\\]$"
519
514
  }
520
515
  ]
521
516
  }
@@ -625,7 +620,7 @@
625
620
  "match": "\\bp\\d+\\b"
626
621
  },
627
622
  {
628
- "match": "(?:\\b(ATS(?:add(?:(?:nz)?)|bufread|cross|in(?:fo|terpread)|partialtap|read(?:(?:nz)?)|sinnoi)|FL(?:b(?:ox|ut(?:Bank|ton))|c(?:loseButton|o(?:lor(?:(?:2)?)|unt))|execButton|g(?:etsnap|roup(?:(?:(?:E|_e)nd)?))|h(?:ide|vsBox(?:(?:SetValue)?))|joy|k(?:eyIn|nob)|l(?:abel|oadsnap)|mouse|p(?:a(?:ck(?:(?:(?:E|_e)nd)?)|nel(?:(?:(?:E|_e)nd)?))|rintk(?:(?:2)?))|r(?:oller|un)|s(?:avesnap|croll(?:(?:(?:E|_e)nd)?)|et(?:Align|Box|Color(?:(?:2)?)|Font|Position|S(?:ize|napGroup)|Text(?:(?:Color|(?:Siz|Typ)e)?)|Val(?:(?:(?:(?:_)?)i)?)|snap)|how|lid(?:Bnk(?:(?:2(?:(?:Set(?:(?:k)?))?)|GetHandle|Set(?:(?:k)?))?)|er))|t(?:abs(?:(?:(?:E|_e)nd)?)|ext)|update|v(?:alue|keybd|slidBnk(?:(?:2)?))|xyin)|Jacko(?:Audio(?:In(?:(?:Connect)?)|Out(?:(?:Connect)?))|Freewheel|In(?:fo|it)|Midi(?:(?:InConnec|Ou(?:(?:tConnec)?))t)|NoteOut|On|Transport)|K35_(?:(?:[hl])pf)|Mixer(?:Clear|GetLevel|Receive|Se(?:nd|tLevel(?:(?:_i)?)))|OSC(?:init(?:(?:M)?)|listen|raw|send(?:(?:A|_lo)?))|STK(?:B(?:andedWG|eeThree|low(?:Botl|Hole)|owed|rass)|Clarinet|Drummer|F(?:MVoices|lute)|HevyMetl|M(?:andolin|o(?:dalBar|og))|P(?:ercFlut|lucked)|R(?:esonate|hodey)|S(?:axofony|hakers|i(?:mple|tar)|tifKarp)|TubeBell|VoicForm|W(?:histle|urley))|a(?:bs|ctive|ds(?:r|yn(?:(?:t(?:(?:2)?))?))|ftouch|l(?:pass|wayson)|mp(?:db(?:(?:fs)?)|midi(?:(?:d)?))|reson(?:(?:k)?)|tone(?:(?:[kx])?))|b(?:a(?:bo|lance|mboo|rmodel)|bcut(?:[ms])|e(?:(?:tara|xpr)nd)|form(?:(?:de|en)c1)|i(?:nit|quad(?:(?:a)?)|rnd)|pf|qrez|u(?:chla|t(?:b(?:[pr])|hp|lp|t(?:er(?:b(?:[pr])|(?:[hl])p)|on))|zz))|c(?:2r|a(?:basa|uchy(?:(?:i)?))|brt|e(?:il|ll|nt(?:(?:roid)?)|ps(?:(?:inv)?))|h(?:an(?:ctrl|ged(?:(?:2)?)|[io])|e(?:byshevpoly|ckbox)|n(?:_(?:[Sak])|clear|export|get|mix|params|set)|uap)|l(?:ear|filt|ip|ocko(?:ff|n))|mp(?:(?:lxprod)?)|o(?:m(?:b(?:(?:inv)?)|p(?:ile(?:csd|orc|str)|ress(?:(?:2)?)))|n(?:nect|trol|v(?:(?:l|olv)e))|py(?:a2ftab|f2array)|s(?:(?:h|inv|seg(?:(?:[br])?))?))|p(?:s(?:2pch|midi(?:(?:b|nn)?)|oct|pch|t(?:mid|un(?:(?:i)?))|xpch)|u(?:meter|prc))|r(?:oss(?:2|fm(?:(?:i|pm(?:(?:i)?))?)|pm(?:(?:i)?))|unch)|t(?:lchn|rl(?:14|21|7|init))|userrnd)|d(?:a(?:m|te(?:(?:s)?))|b(?:(?:(?:(?:fs)?)amp)?)|c(?:block(?:(?:2)?)|onv|t(?:(?:inv)?))|e(?:l(?:ay(?:(?:[1krw])?)|tap(?:(?:xw|[3inx])?))|norm)|i(?:ff|ode_ladder|rectory|s(?:k(?:grain|in(?:(?:2)?))|p(?:fft|lay)|tort(?:(?:1)?))|vz)|o(?:ppler|t|wnsamp)|ripwater|ssi(?:a(?:ctivate|udio)|ctls|(?:ini|lis)t)|u(?:mpk(?:(?:[234])?)|s(?:errnd|t(?:(?:2)?))))|e(?:nvlpx(?:(?:r)?)|phasor|qfil|v(?:alstr|ent(?:(?:_i)?))|x(?:citer|itnow|p(?:(?:curve|on|rand(?:(?:i)?)|seg(?:(?:ba|[abr])?))?)))|f(?:a(?:reylen(?:(?:i)?)|ust(?:audio|c(?:ompile|tl)|gen))|ft(?:(?:inv)?)|i(?:close|l(?:e(?:bit|len|nchnls|peak|s(?:cal|r)|valid)|larray|ter2)|n(?:(?:[ik])?)|open)|l(?:a(?:nger|shtxt)|oo(?:per(?:(?:2)?)|r)|uid(?:AllOut|C(?:C(?:[ik])|ontrol)|Engine|Load|Note|Out|ProgramSelect|SetInterpMethod))|m(?:anal|b(?:3|ell)|metal|percfl|(?:rhod|voic|wurli)e)|o(?:f(?:2|ilter)|l(?:d|low(?:(?:2)?))|scil(?:(?:i)?)|ut(?:(?:ir|[ik])?)|[fg])|print(?:(?:(?:k)?)s)|r(?:a(?:c(?:(?:talnoise)?)|mebuffer)|eeverb)|t(?:c(?:hnls|onv|ps)|free|gen(?:(?:once|tmp)?)|l(?:en|oad(?:(?:k)?)|ptim)|morf|om|resize(?:(?:i)?)|s(?:a(?:mplebank|ve(?:(?:k)?))|r)))|g(?:a(?:in(?:(?:slider)?)|uss(?:(?:i|trig)?))|buzz|e(?:n(?:array(?:(?:_i)?)|dy(?:(?:[cx])?))|t(?:c(?:fg|ol)|ftargs|row|seed))|ogobel|ra(?:in(?:(?:[23])?)|nule)|uiro)|h(?:armon(?:(?:[234])?)|df5(?:read|write)|ilbert(?:(?:2)?)|rtf(?:early|move(?:(?:2)?)|reverb|stat)|sboscil|vs(?:[123]))|i(?:hold|mage(?:create|free|getpixel|load|s(?:ave|etpixel|ize))|n(?:(?:32|ch|it(?:(?:c(?:14|21|7))?)|let(?:kid|[afkv])|rg|s(?:global|remot)|te(?:g|rp)|value|[hoqstxz])?))|j(?:acktransport|itter(?:(?:2)?)|oystick|spline)|l(?:a_(?:i_(?:a(?:dd_(?:m(?:[cr])|v(?:[cr]))|ssign_(?:m(?:[cr])|t|v(?:[cr])))|conjugate_(?:m(?:[cr])|v(?:[cr]))|d(?:i(?:stance_v(?:[cr])|vide_(?:m(?:[cr])|v(?:[cr])))|ot_(?:m(?:c_vc|r_vr|[cr])|v(?:[cr])))|get_(?:m(?:[cr])|v(?:[cr]))|invert_m(?:[cr])|l(?:ower_solve_m(?:[cr])|u_(?:det_m(?:[cr])|factor_m(?:[cr])|solve_m(?:[cr])))|m(?:c_(?:create|set)|r_(?:create|set)|ultiply_(?:m(?:[cr])|v(?:[cr])))|norm(?:1_(?:m(?:[cr])|v(?:[cr]))|_(?:euclid_(?:m(?:[cr])|v(?:[cr]))|inf_(?:m(?:[cr])|v(?:[cr]))|max_m(?:[cr])))|print_(?:m(?:[cr])|v(?:[cr]))|qr_(?:eigen_m(?:[cr])|factor_m(?:[cr])|sym_eigen_m(?:[cr]))|random_(?:m(?:[cr])|v(?:[cr]))|s(?:ize_(?:m(?:[cr])|v(?:[cr]))|ubtract_(?:m(?:[cr])|v(?:[cr])))|t(?:_assign|ra(?:ce_m(?:[cr])|nspose_m(?:[cr])))|upper_solve_m(?:[cr])|v(?:c_(?:create|set)|r_(?:create|set)))|k_(?:a(?:_assign|dd_(?:m(?:[cr])|v(?:[cr]))|ssign_(?:m(?:[cr])|v(?:[cr])|[aft]))|c(?:onjugate_(?:m(?:[cr])|v(?:[cr]))|urrent_(?:f|vr))|d(?:i(?:stance_v(?:[cr])|vide_(?:m(?:[cr])|v(?:[cr])))|ot_(?:m(?:c_vc|r_vr|[cr])|v(?:[cr])))|f_assign|get_(?:m(?:[cr])|v(?:[cr]))|invert_m(?:[cr])|l(?:ower_solve_m(?:[cr])|u_(?:det_m(?:[cr])|factor_m(?:[cr])|solve_m(?:[cr])))|m(?:c_set|r_set|ultiply_(?:m(?:[cr])|v(?:[cr])))|norm(?:1_(?:m(?:[cr])|v(?:[cr]))|_(?:euclid_(?:m(?:[cr])|v(?:[cr]))|inf_(?:m(?:[cr])|v(?:[cr]))|max_m(?:[cr])))|qr_(?:eigen_m(?:[cr])|factor_m(?:[cr])|sym_eigen_m(?:[cr]))|random_(?:m(?:[cr])|v(?:[cr]))|subtract_(?:m(?:[cr])|v(?:[cr]))|t(?:_assign|race_m(?:[cr]))|upper_solve_m(?:[cr])|v(?:(?:[cr])_set)))|enarray|fo|i(?:mit(?:(?:1)?)|n(?:e(?:(?:n(?:(?:r)?)|to)?)|k_(?:beat_(?:force|(?:ge|reques)t)|create|enable|is_enabled|metro|peers|tempo_(?:(?:[gs])et))|lin|rand|seg(?:(?:[br])?))|veconv)|o(?:cs(?:end|ig)|g(?:(?:10|2|btwo|curve)?)|op(?:seg(?:(?:p)?)|(?:[tx])seg)|renz|scil(?:(?:[3x])?)|w(?:pass2|res(?:(?:x)?)))|p(?:f(?:18|orm|reson)|hasor|interp|oscil(?:(?:sa(?:(?:2)?)|[3a])?)|re(?:ad|son)|s(?:hold(?:(?:p)?)|lot))|ua_(?:exec|i(?:aopcall(?:(?:_off)?)|kopcall(?:(?:_off)?)|opcall(?:(?:_off)?))|opdef))|m(?:a(?:ca|dsr|gs|nd(?:(?:[eo])l)|parray(?:(?:_i)?)|rimba|ssign|x(?:_k|a(?:bs(?:(?:accum)?)|ccum|lloc|rray))|[cx])|clock|delay|e(?:dian(?:(?:k)?)|tro)|fb|i(?:d(?:global|i(?:arp|c(?:14|21|7|h(?:annelaftertouch|n)|ontrolchange|trl)|default|filestatus|in|noteo(?:ff|n(?:cps|key|oct|pch))|o(?:n(?:(?:2)?)|ut)|p(?:gm|itchbend|olyaftertouch|rogramchange)|tempo)|remot)|n(?:(?:a(?:bs(?:(?:accum)?)|ccum|rray)|cer)?)|rror)|o(?:d(?:e|matrix)|nitor|og(?:(?:ladder(?:(?:2)?)|vcf(?:(?:2)?))?)|scil)|p(?:3(?:bitrate|in|len|nchnls|s(?:cal(?:(?:_(?:check|load(?:(?:2)?)|play(?:(?:2)?)))?)|r))|ulse)|rtmsg|to(?:[fn])|u(?:ltitap|te)|vc(?:hpf|lpf(?:[1234]))|xadsr)|n(?:chnls_hw|estedap|l(?:alp|filt(?:(?:2)?))|o(?:ise|t(?:eo(?:ff|n(?:(?:dur(?:(?:2)?))?))|num))|r(?:everb|pn)|s(?:amp|t(?:ance|rnum))|t(?:om|rpol)|xtpow2)|o(?:ct(?:ave|cps|midi(?:(?:b|nn)?)|pch)|labuffer|sc(?:bnk|il(?:(?:1i|ikt(?:(?:[ps])?)|[13insx])?))|ut(?:(?:32|ch|i(?:at|c(?:(?:14)?)|p(?:at|[bc]))|k(?:at|c(?:(?:14)?)|p(?:at|[bc]))|let(?:kid|[afkv])|q(?:[1234])|rg|s(?:[12])|value|[choqsxz])?))|p(?:5g(?:connect|data)|a(?:n(?:(?:2)?)|r(?:eq|t(?:2txt|i(?:als|kkel(?:(?:get|s(?:et|ync))?))))|ssign|ulstretch)|c(?:auchy|h(?:bend|midi(?:(?:b|nn)?)|oct|tom)|o(?:nvolve|unt))|d(?:clip|half(?:(?:y)?))|eak|gm(?:(?:assig|ch)n)|h(?:as(?:er(?:[12])|or(?:(?:bnk)?))|s)|i(?:n(?:dex|k(?:er|ish))|tch(?:(?:a(?:c|mdf))?))|l(?:a(?:net|terev)|(?:ltra|u)ck)|o(?:isson|l(?:2rect|y(?:aft|nomial))|rt(?:(?:k)?)|scil(?:(?:3)?)|w(?:(?:ershape|oftwo|s)?))|r(?:e(?:alloc|piano)|int(?:(?:_type|f_i|k(?:s2|[2s])|[fks])?)|oduct)|set|t(?:able(?:(?:iw|[3iw])?)|rack)|uts|v(?:add|bufread|cross|interp|oc|read|s(?:2(?:array|tab)|a(?:dsyn|nal|rp)|b(?:and(?:[pr])|in|lur|uf(?:fer|read(?:(?:2)?)))|c(?:ale|e(?:nt|ps)|ross)|d(?:emix|is(?:kin|p))|envftw|f(?:ilter|r(?:e(?:ad|eze)|omarray)|t(?:[rw])|write)|g(?:ain|endy)|hift|i(?:fd|n(?:(?:fo|it)?))|lock|m(?:aska|ix|o(?:(?:ot|rp)h))|o(?:sc|ut)|pitch|t(?:anal|encil|race)|voc|warp|ynth))|wd|y(?:assign(?:(?:[it])?)|call(?:(?:1(?:[it])|2(?:[it])|3(?:[it])|4(?:[it])|5(?:[it])|6(?:[it])|7(?:[it])|8(?:[it])|ni|[12345678int])?)|e(?:val(?:(?:[it])?)|xec(?:(?:[it])?))|init|l(?:assign(?:(?:[it])?)|call(?:(?:1(?:[it])|2(?:[it])|3(?:[it])|4(?:[it])|5(?:[it])|6(?:[it])|7(?:[it])|8(?:[it])|ni|[12345678int])?)|e(?:val(?:(?:[it])?)|xec(?:(?:[it])?))|run(?:(?:[it])?))|run(?:(?:[it])?)))|q(?:inf|nan)|r(?:2c|and(?:(?:om(?:(?:[hi])?)|[hi])?)|bjeq|e(?:ad(?:clock|fi|k(?:[234s])|sc(?:ore|ratch)|[fk])|ct2pol|init|lease|mo(?:teport|ve)|pluck|s(?:on(?:(?:xk|[krxyz])?)|yn)|verb(?:(?:2|sc)?)|windscore|zzy)|fft|ifft|ms|nd(?:(?:31)?)|ound|spline|tclock)|s(?:16b14|32b14|a(?:mphold|ndpaper)|c(?:_(?:lag(?:(?:ud)?)|phasor|trig)|a(?:le(?:(?:array)?)|n(?:hammer|table|[su]))|hed(?:kwhen(?:(?:named)?)|ule|when)|oreline(?:(?:_i)?))|e(?:ed|kere|lect|mitone|nse(?:(?:key)?)|qtime(?:(?:2)?)|rial(?:Begin|End|Flush|Print|Read|Write(?:(?:_i)?))|t(?:c(?:(?:o|tr)l)|ksmps|row|scorepos))|f(?:i(?:list|nstr(?:(?:3m|[3m])?))|lo(?:ad|oper)|p(?:assign|l(?:ay(?:(?:3m|[3m])?)|ist)|reset))|h(?:aker|ift(?:in|out))|i(?:gn(?:alflowgraph|um)|n(?:(?:h|inv|syn)?))|l(?:eighbells|i(?:cearray|der(?:16(?:(?:f|table(?:(?:f)?))?)|32(?:(?:f|table(?:(?:f)?))?)|64(?:(?:f|table(?:(?:f)?))?)|8(?:(?:f|table(?:(?:f)?))?)|Kawai)))|nd(?:loop|warp(?:(?:st)?))|o(?:ck(?:recv(?:(?:s)?)|send(?:(?:_k|s)?))|rt(?:[ad])|undin)|p(?:a(?:ce|t3d(?:(?:[it])?))|dist|litrig|rintf(?:(?:k)?)|send)|qrt|t(?:atevar|ix|r(?:c(?:at(?:(?:k)?)|har(?:(?:k)?)|mp(?:(?:k)?)|py(?:(?:k)?))|e(?:cv|son)|fromurl|get|index(?:(?:k)?)|l(?:en(?:(?:k)?)|ower(?:(?:k)?))|rindex(?:(?:k)?)|s(?:et|ub(?:(?:k)?))|to(?:(?:[dl])k|[dl])|upper(?:(?:k)?))|send)|u(?:binstr(?:(?:init)?)|m(?:(?:TableFilter|array)?))|vfilter|y(?:nc(?:grain|loop|phasor)|st(?:em(?:(?:_i)?)|ime)))|t(?:a(?:b(?:2pvs|_i|ifd|le(?:(?:3kt|copy|filter(?:(?:i)?)|gpw|i(?:copy|gpw|kt|mix|w)|kt|mix|ng|ra|s(?:eg|huffle(?:(?:i)?))|w(?:a|kt)|x(?:kt|seg)|[3iw])?)|morph(?:(?:ak|[ai])?)|play|rec|sum|w(?:(?:_i)?))|mbourine|n(?:h|inv(?:(?:2)?))|[bn])|b(?:0_init|1(?:(?:(?:[012345])?)_init|[012345])|2_init|3_init|4_init|5_init|6_init|7_init|8_init|9_init|vcf|[0123456789])|emp(?:est|o(?:(?:(?:sc|v)al)?))|i(?:me(?:dseq|inst(?:[ks])|[ks])|val)|lineto|one(?:(?:[kx])?)|r(?:a(?:dsyn|n(?:dom|seg(?:(?:[br])?)))|cross|filter|highest|i(?:g(?:ger|seq)|rand)|lowest|mix|s(?:cale|(?:hif|pli)t))|urno(?:ff(?:(?:2)?)|n)|vconv)|u(?:n(?:irand|wrap)|psamp|r(?:andom|d))|v(?:a(?:ctrol|dd(?:(?:_i|v(?:(?:_i)?))?)|get|lpass|set)|bap(?:(?:1move|gmove|lsinit|(?:(?:z)?)move|[gz])?)|c(?:ella|o(?:(?:2(?:(?:(?:f|i(?:f|ni))t)?)|mb|py(?:(?:_i)?))?))|d(?:el(?:_k|ay(?:(?:x(?:w(?:[qs])|[qsw])|[3kx])?))|ivv(?:(?:_i)?))|e(?:cdelay|loc|xp(?:(?:_i|seg|v(?:(?:_i)?))?))|i(?:b(?:es|r(?:(?:ato)?))|ncr)|l(?:i(?:mit|nseg)|owres)|m(?:ap|irror|ult(?:(?:_i|v(?:(?:_i)?))?))|o(?:ice|sim)|p(?:haseseg|o(?:rt|w(?:(?:_i|v(?:(?:_i)?))?))|voc)|rand(?:[hi])|subv(?:(?:_i)?)|tab(?:le(?:1k|w(?:[aik])|[aik])|w(?:[aik])|[aik])|wrap)|w(?:aveset|e(?:bsocket|ibull)|g(?:b(?:ow(?:(?:edbar)?)|rass)|clar|flute|pluck(?:(?:2)?)|uide(?:[12]))|i(?:i(?:connect|data|range|send)|ndow)|r(?:ap|itescratch)|terrain)|x(?:adsr|in|out|scan(?:map|smap|[su])|tratim|yscale)|z(?:a(?:cl|kinit|mod|rg|wm|[rw])|df_(?:1pole(?:(?:_mode)?)|2pole(?:(?:_mode)?)|ladder)|filter2|i(?:wm|[rw])|k(?:cl|mod|wm|[rw]))|[Saikp])\\b|\\b(array|bform(?:(?:de|en)c)|copy2(?:(?:[ft])tab)|hrtfer|ktableseg|lentab|m(?:(?:ax|in)tab)|p(?:op(?:(?:_f)?)|ush(?:(?:_f)?))|s(?:calet|ndload|oundout(?:(?:s)?)|pec(?:addm|di(?:ff|sp)|filt|hist|ptrk|s(?:cal|um)|trum)|tack|umtab)|tab(?:gen|map(?:(?:_i)?)|slice)|vbap(?:16|(?:[48])move|[48])|xyin)\\b)(?:(\\:)([A-Za-z]))?",
623
+ "match": "(?:\\b(ATS(?:add(?:(?:nz)?)|bufread|cross|in(?:fo|terpread)|partialtap|read(?:(?:nz)?)|sinnoi)|FL(?:b(?:ox|ut(?:Bank|ton))|c(?:loseButton|o(?:lor(?:(?:2)?)|unt))|execButton|g(?:etsnap|roup(?:(?:(?:E|_e)nd)?))|h(?:ide|vsBox(?:(?:SetValue)?))|joy|k(?:eyIn|nob)|l(?:abel|oadsnap)|mouse|p(?:a(?:ck(?:(?:(?:E|_e)nd)?)|nel(?:(?:(?:E|_e)nd)?))|rintk(?:(?:2)?))|r(?:oller|un)|s(?:avesnap|croll(?:(?:(?:E|_e)nd)?)|et(?:Align|Box|Color(?:(?:2)?)|Font|Position|S(?:ize|napGroup)|Text(?:(?:Color|(?:Siz|Typ)e)?)|Val(?:(?:(?:(?:_)?)i)?)|snap)|how|lid(?:Bnk(?:(?:2(?:(?:Set(?:(?:k)?))?)|GetHandle|Set(?:(?:k)?))?)|er))|t(?:abs(?:(?:(?:E|_e)nd)?)|ext)|update|v(?:alue|keybd|slidBnk(?:(?:2)?))|xyin)|Jacko(?:Audio(?:In(?:(?:Connect)?)|Out(?:(?:Connect)?))|Freewheel|In(?:fo|it)|Midi(?:(?:InConnec|Ou(?:(?:tConnec)?))t)|NoteOut|On|Transport)|K35_(?:(?:[hl])pf)|Mixer(?:Clear|GetLevel|Receive|Se(?:nd|tLevel(?:(?:_i)?)))|OSC(?:init(?:(?:M)?)|listen|raw|send(?:(?:A|_lo)?))|STK(?:B(?:andedWG|eeThree|low(?:Botl|Hole)|owed|rass)|Clarinet|Drummer|F(?:MVoices|lute)|HevyMetl|M(?:andolin|o(?:dalBar|og))|P(?:ercFlut|lucked)|R(?:esonate|hodey)|S(?:axofony|hakers|i(?:mple|tar)|tifKarp)|TubeBell|VoicForm|W(?:histle|urley))|a(?:bs|ctive|ds(?:r|yn(?:(?:t(?:(?:2)?))?))|ftouch|l(?:pass|wayson)|mp(?:db(?:(?:fs)?)|midi(?:(?:d)?))|reson(?:(?:k)?)|tone(?:(?:[kx])?))|b(?:a(?:bo|lance|mboo|rmodel)|bcut(?:[ms])|e(?:(?:tara|xpr)nd)|form(?:(?:de|en)c1)|i(?:nit|quad(?:(?:a)?)|rnd)|pf|qrez|u(?:chla|t(?:b(?:[pr])|hp|lp|t(?:er(?:b(?:[pr])|(?:[hl])p)|on))|zz))|c(?:2r|a(?:basa|uchy(?:(?:i)?))|brt|e(?:il|ll|nt(?:(?:roid)?)|ps(?:(?:inv)?))|h(?:an(?:ctrl|ged(?:(?:2)?)|[io])|e(?:byshevpoly|ckbox)|n(?:_(?:[Sak])|clear|export|get|mix|params|set)|uap)|l(?:ear|filt|ip|ocko(?:ff|n))|mp(?:(?:lxprod)?)|o(?:m(?:b(?:(?:inv)?)|p(?:ile(?:csd|orc|str)|ress(?:(?:2)?)))|n(?:nect|trol|v(?:(?:l|olv)e))|py(?:a2ftab|f2array)|s(?:(?:h|inv|seg(?:(?:[br])?))?))|p(?:s(?:2pch|midi(?:(?:b|nn)?)|oct|pch|t(?:mid|un(?:(?:i)?))|xpch)|u(?:meter|prc))|r(?:oss(?:2|fm(?:(?:i|pm(?:(?:i)?))?)|pm(?:(?:i)?))|unch)|t(?:lchn|rl(?:14|21|7|init))|userrnd)|d(?:a(?:m|te(?:(?:s)?))|b(?:(?:(?:(?:fs)?)amp)?)|c(?:block(?:(?:2)?)|onv|t(?:(?:inv)?))|e(?:l(?:ay(?:(?:[1krw])?)|tap(?:(?:xw|[3inx])?))|norm)|i(?:ff|ode_ladder|rectory|s(?:k(?:grain|in(?:(?:2)?))|p(?:fft|lay)|tort(?:(?:1)?))|vz)|o(?:ppler|t|wnsamp)|ripwater|ssi(?:a(?:ctivate|udio)|ctls|(?:ini|lis)t)|u(?:mpk(?:(?:[234])?)|s(?:errnd|t(?:(?:2)?))))|e(?:nvlpx(?:(?:r)?)|phasor|qfil|v(?:alstr|ent(?:(?:_i)?))|x(?:citer|itnow|p(?:(?:curve|on|rand(?:(?:i)?)|seg(?:(?:ba|[abr])?))?)))|f(?:a(?:reylen(?:(?:i)?)|ust(?:audio|c(?:ompile|tl)|gen))|ft(?:(?:inv)?)|i(?:close|l(?:e(?:bit|len|nchnls|peak|s(?:cal|r)|valid)|larray|ter2)|n(?:(?:[ik])?)|open)|l(?:a(?:nger|shtxt)|oo(?:per(?:(?:2)?)|r)|uid(?:AllOut|C(?:C(?:[ik])|ontrol)|Engine|Load|Note|Out|ProgramSelect|SetInterpMethod))|m(?:a(?:nal|x)|b(?:3|ell)|in|metal|od|percfl|(?:rhod|voic|wurli)e)|o(?:f(?:2|ilter)|l(?:d|low(?:(?:2)?))|scil(?:(?:i)?)|ut(?:(?:ir|[ik])?)|[fg])|print(?:(?:(?:k)?)s)|r(?:a(?:c(?:(?:talnoise)?)|mebuffer)|eeverb)|t(?:c(?:hnls|onv|ps)|free|gen(?:(?:once|tmp)?)|l(?:en|oad(?:(?:k)?)|ptim)|morf|om|resize(?:(?:i)?)|s(?:a(?:mplebank|ve(?:(?:k)?))|r)))|g(?:a(?:in(?:(?:slider)?)|uss(?:(?:i|trig)?))|buzz|e(?:n(?:array(?:(?:_i)?)|dy(?:(?:[cx])?))|t(?:c(?:fg|ol)|ftargs|row|seed))|ogobel|ra(?:in(?:(?:[23])?)|nule)|uiro)|h(?:armon(?:(?:[234])?)|df5(?:read|write)|ilbert(?:(?:2)?)|rtf(?:early|move(?:(?:2)?)|reverb|stat)|sboscil|vs(?:[123])|ypot)|i(?:hold|mage(?:create|free|getpixel|load|s(?:ave|etpixel|ize))|n(?:(?:32|ch|it(?:(?:c(?:14|21|7))?)|let(?:kid|[afkv])|rg|s(?:global|remot)|te(?:g|rp)|value|[hoqstxz])?))|j(?:acktransport|itter(?:(?:2)?)|oystick|spline)|l(?:a_(?:i_(?:a(?:dd_(?:m(?:[cr])|v(?:[cr]))|ssign_(?:m(?:[cr])|t|v(?:[cr])))|conjugate_(?:m(?:[cr])|v(?:[cr]))|d(?:i(?:stance_v(?:[cr])|vide_(?:m(?:[cr])|v(?:[cr])))|ot_(?:m(?:c_vc|r_vr|[cr])|v(?:[cr])))|get_(?:m(?:[cr])|v(?:[cr]))|invert_m(?:[cr])|l(?:ower_solve_m(?:[cr])|u_(?:det_m(?:[cr])|factor_m(?:[cr])|solve_m(?:[cr])))|m(?:c_(?:create|set)|r_(?:create|set)|ultiply_(?:m(?:[cr])|v(?:[cr])))|norm(?:1_(?:m(?:[cr])|v(?:[cr]))|_(?:euclid_(?:m(?:[cr])|v(?:[cr]))|inf_(?:m(?:[cr])|v(?:[cr]))|max_m(?:[cr])))|print_(?:m(?:[cr])|v(?:[cr]))|qr_(?:eigen_m(?:[cr])|factor_m(?:[cr])|sym_eigen_m(?:[cr]))|random_(?:m(?:[cr])|v(?:[cr]))|s(?:ize_(?:m(?:[cr])|v(?:[cr]))|ubtract_(?:m(?:[cr])|v(?:[cr])))|t(?:_assign|ra(?:ce_m(?:[cr])|nspose_m(?:[cr])))|upper_solve_m(?:[cr])|v(?:c_(?:create|set)|r_(?:create|set)))|k_(?:a(?:_assign|dd_(?:m(?:[cr])|v(?:[cr]))|ssign_(?:m(?:[cr])|v(?:[cr])|[aft]))|c(?:onjugate_(?:m(?:[cr])|v(?:[cr]))|urrent_(?:f|vr))|d(?:i(?:stance_v(?:[cr])|vide_(?:m(?:[cr])|v(?:[cr])))|ot_(?:m(?:c_vc|r_vr|[cr])|v(?:[cr])))|f_assign|get_(?:m(?:[cr])|v(?:[cr]))|invert_m(?:[cr])|l(?:ower_solve_m(?:[cr])|u_(?:det_m(?:[cr])|factor_m(?:[cr])|solve_m(?:[cr])))|m(?:c_set|r_set|ultiply_(?:m(?:[cr])|v(?:[cr])))|norm(?:1_(?:m(?:[cr])|v(?:[cr]))|_(?:euclid_(?:m(?:[cr])|v(?:[cr]))|inf_(?:m(?:[cr])|v(?:[cr]))|max_m(?:[cr])))|qr_(?:eigen_m(?:[cr])|factor_m(?:[cr])|sym_eigen_m(?:[cr]))|random_(?:m(?:[cr])|v(?:[cr]))|subtract_(?:m(?:[cr])|v(?:[cr]))|t(?:_assign|race_m(?:[cr]))|upper_solve_m(?:[cr])|v(?:(?:[cr])_set)))|enarray|fo|i(?:mit(?:(?:1)?)|n(?:e(?:(?:n(?:(?:r)?)|to)?)|k_(?:beat_(?:force|(?:ge|reques)t)|create|enable|is_enabled|metro|peers|tempo_(?:(?:[gs])et))|lin|rand|seg(?:(?:[br])?))|veconv)|o(?:cs(?:end|ig)|g(?:(?:10|2|btwo|curve)?)|op(?:seg(?:(?:p)?)|(?:[tx])seg)|renz|scil(?:(?:[3x])?)|w(?:pass2|res(?:(?:x)?)))|p(?:f(?:18|orm|reson)|hasor|interp|oscil(?:(?:sa(?:(?:2)?)|[3a])?)|re(?:ad|son)|s(?:hold(?:(?:p)?)|lot))|ua_(?:exec|i(?:aopcall(?:(?:_off)?)|kopcall(?:(?:_off)?)|opcall(?:(?:_off)?))|opdef))|m(?:a(?:ca|dsr|gs|nd(?:(?:[eo])l)|parray(?:(?:_i)?)|rimba|ssign|x(?:_k|a(?:bs(?:(?:accum)?)|ccum|lloc|rray))|[cx])|clock|delay|e(?:dian(?:(?:k)?)|tro)|fb|i(?:d(?:global|i(?:arp|c(?:14|21|7|h(?:annelaftertouch|n)|ontrolchange|trl)|default|filestatus|in|noteo(?:ff|n(?:cps|key|oct|pch))|o(?:n(?:(?:2)?)|ut)|p(?:gm|itchbend|olyaftertouch|rogramchange)|tempo)|remot)|n(?:(?:a(?:bs(?:(?:accum)?)|ccum|rray)|cer)?)|rror)|o(?:d(?:e|matrix)|nitor|og(?:(?:ladder(?:(?:2)?)|vcf(?:(?:2)?))?)|scil)|p(?:3(?:bitrate|in|len|nchnls|s(?:cal(?:(?:_(?:check|load(?:(?:2)?)|play(?:(?:2)?)))?)|r))|ulse)|rtmsg|to(?:[fn])|u(?:ltitap|te)|vc(?:hpf|lpf(?:[1234]))|xadsr)|n(?:chnls_hw|estedap|l(?:alp|filt(?:(?:2)?))|o(?:ise|t(?:eo(?:ff|n(?:(?:dur(?:(?:2)?))?))|num))|r(?:everb|pn)|s(?:amp|t(?:ance|rnum))|t(?:om|rpol)|xtpow2)|o(?:ct(?:ave|cps|midi(?:(?:b|nn)?)|pch)|labuffer|sc(?:bnk|il(?:(?:1i|ikt(?:(?:[ps])?)|[13insx])?))|ut(?:(?:32|ch|i(?:at|c(?:(?:14)?)|p(?:at|[bc]))|k(?:at|c(?:(?:14)?)|p(?:at|[bc]))|let(?:kid|[afkv])|q(?:[1234])|rg|s(?:[12])|value|[choqsxz])?))|p(?:5g(?:connect|data)|a(?:n(?:(?:2)?)|r(?:eq|t(?:2txt|i(?:als|kkel(?:(?:get|s(?:et|ync))?))))|ssign|ulstretch)|c(?:auchy|h(?:bend|midi(?:(?:b|nn)?)|oct|tom)|o(?:nvolve|unt))|d(?:clip|half(?:(?:y)?))|eak|gm(?:(?:assig|ch)n)|h(?:as(?:er(?:[12])|or(?:(?:bnk)?))|s)|i(?:n(?:dex|k(?:er|ish))|tch(?:(?:a(?:c|mdf))?))|l(?:a(?:net|terev)|(?:ltra|u)ck)|o(?:isson|l(?:2rect|y(?:aft|nomial))|rt(?:(?:k)?)|scil(?:(?:3)?)|w(?:(?:ershape|oftwo|s)?))|r(?:e(?:alloc|piano)|int(?:(?:_type|f_i|k(?:s2|[2s])|[fks])?)|oduct)|set|t(?:able(?:(?:iw|[3iw])?)|rack)|uts|v(?:add|bufread|cross|interp|oc|read|s(?:2(?:array|tab)|a(?:dsyn|nal|rp)|b(?:and(?:[pr])|in|lur|uf(?:fer|read(?:(?:2)?)))|c(?:ale|e(?:nt|ps)|ross)|d(?:emix|is(?:kin|p))|envftw|f(?:ilter|r(?:e(?:ad|eze)|omarray)|t(?:[rw])|write)|g(?:ain|endy)|hift|i(?:fd|n(?:(?:fo|it)?))|lock|m(?:aska|ix|o(?:(?:ot|rp)h))|o(?:sc|ut)|pitch|t(?:anal|encil|race)|voc|warp|ynth))|wd|y(?:assign(?:(?:[it])?)|call(?:(?:1(?:[it])|2(?:[it])|3(?:[it])|4(?:[it])|5(?:[it])|6(?:[it])|7(?:[it])|8(?:[it])|ni|[12345678int])?)|e(?:val(?:(?:[it])?)|xec(?:(?:[it])?))|init|l(?:assign(?:(?:[it])?)|call(?:(?:1(?:[it])|2(?:[it])|3(?:[it])|4(?:[it])|5(?:[it])|6(?:[it])|7(?:[it])|8(?:[it])|ni|[12345678int])?)|e(?:val(?:(?:[it])?)|xec(?:(?:[it])?))|run(?:(?:[it])?))|run(?:(?:[it])?)))|q(?:inf|nan)|r(?:2c|and(?:(?:om(?:(?:[hi])?)|[hi])?)|bjeq|e(?:ad(?:clock|fi|k(?:[234s])|sc(?:ore|ratch)|[fk])|ct2pol|lease|mo(?:teport|ve)|pluck|s(?:on(?:(?:xk|[krxyz])?)|yn)|verb(?:(?:2|sc)?)|windscore|zzy)|fft|ifft|ms|nd(?:(?:31)?)|ound|spline|tclock)|s(?:16b14|32b14|a(?:mphold|ndpaper)|c(?:_(?:lag(?:(?:ud)?)|phasor|trig)|a(?:le(?:(?:array)?)|n(?:hammer|table|[su]))|hed(?:kwhen(?:(?:named)?)|ule|when)|oreline(?:(?:_i)?))|e(?:ed|kere|lect|mitone|nse(?:(?:key)?)|qtime(?:(?:2)?)|rial(?:Begin|End|Flush|Print|Read|Write(?:(?:_i)?))|t(?:c(?:(?:o|tr)l)|ksmps|row|scorepos))|f(?:i(?:list|nstr(?:(?:3m|[3m])?))|lo(?:ad|oper)|p(?:assign|l(?:ay(?:(?:3m|[3m])?)|ist)|reset))|h(?:aker|ift(?:in|out))|i(?:gn(?:alflowgraph|um)|n(?:(?:h|inv|syn)?))|l(?:eighbells|i(?:cearray|der(?:16(?:(?:f|table(?:(?:f)?))?)|32(?:(?:f|table(?:(?:f)?))?)|64(?:(?:f|table(?:(?:f)?))?)|8(?:(?:f|table(?:(?:f)?))?)|Kawai)))|nd(?:loop|warp(?:(?:st)?))|o(?:ck(?:recv(?:(?:s)?)|send(?:(?:_k|s)?))|rt(?:[ad])|undin)|p(?:a(?:ce|t3d(?:(?:[it])?))|dist|litrig|rintf(?:(?:k)?)|send)|qrt|t(?:atevar|ix|r(?:c(?:at(?:(?:k)?)|har(?:(?:k)?)|mp(?:(?:k)?)|py(?:(?:k)?))|e(?:cv|son)|fromurl|get|index(?:(?:k)?)|l(?:en(?:(?:k)?)|ower(?:(?:k)?))|rindex(?:(?:k)?)|s(?:et|ub(?:(?:k)?))|to(?:(?:[dl])k|[dl])|upper(?:(?:k)?))|send)|u(?:binstr(?:(?:init)?)|m(?:(?:array)?))|vfilter|y(?:nc(?:grain|loop|phasor)|stem(?:(?:_i)?)))|t(?:a(?:b(?:2pvs|_i|ifd|le(?:(?:3kt|copy|filter(?:(?:i)?)|gpw|i(?:copy|gpw|kt|mix|w)|kt|mix|ng|ra|s(?:eg|huffle(?:(?:i)?))|w(?:a|kt)|x(?:kt|seg)|[3iw])?)|morph(?:(?:ak|[ai])?)|play|rec|sum|w(?:(?:_i)?))|mbourine|n(?:h|inv(?:(?:2)?))|[bn])|b(?:0_init|1(?:(?:(?:[012345])?)_init|[012345])|2_init|3_init|4_init|5_init|6_init|7_init|8_init|9_init|vcf|[0123456789])|emp(?:est|o(?:(?:(?:sc|v)al)?))|i(?:me(?:dseq|inst(?:[ks])|[ks])|val)|lineto|one(?:(?:[kx])?)|r(?:a(?:dsyn|n(?:dom|seg(?:(?:[br])?)))|cross|filter|highest|i(?:g(?:ger|seq)|rand)|lowest|mix|s(?:cale|(?:hif|pli)t))|urno(?:ff(?:(?:2)?)|n)|vconv)|u(?:n(?:irand|wrap)|psamp|r(?:andom|d))|v(?:a(?:ctrol|dd(?:(?:_i|v(?:(?:_i)?))?)|get|lpass|set)|bap(?:(?:gmove|lsinit|(?:(?:z)?)move|[gz])?)|c(?:ella|o(?:(?:2(?:(?:(?:f|i(?:f|ni))t)?)|mb|py(?:(?:_i)?))?))|d(?:el(?:_k|ay(?:(?:x(?:w(?:[qs])|[qsw])|[3kx])?))|ivv(?:(?:_i)?))|e(?:cdelay|loc|xp(?:(?:_i|seg|v(?:(?:_i)?))?))|i(?:b(?:es|r(?:(?:ato)?))|ncr)|l(?:i(?:mit|nseg)|owres)|m(?:ap|irror|ult(?:(?:_i|v(?:(?:_i)?))?))|o(?:ice|sim)|p(?:haseseg|o(?:rt|w(?:(?:_i|v(?:(?:_i)?))?))|voc)|rand(?:[hi])|subv(?:(?:_i)?)|tab(?:le(?:1k|w(?:[aik])|[aik])|w(?:[aik])|[aik])|wrap)|w(?:aveset|e(?:bsocket|ibull)|g(?:b(?:ow(?:(?:edbar)?)|rass)|clar|flute|pluck(?:(?:2)?)|uide(?:[12]))|i(?:i(?:connect|data|range|send)|ndow)|r(?:ap|itescratch)|terrain)|x(?:adsr|in|out|scan(?:map|smap|[su])|tratim|yscale)|z(?:a(?:cl|kinit|mod|rg|wm|[rw])|df_(?:1pole(?:(?:_mode)?)|2pole(?:(?:_mode)?)|ladder)|filter2|i(?:wm|[rw])|k(?:cl|mod|wm|[rw]))|[Saikp])\\b|\\b(array|bform(?:(?:de|en)c)|copy2(?:(?:[ft])tab)|hrtfer|ktableseg|lentab|m(?:(?:ax|in)tab)|p(?:op(?:(?:_f)?)|ush(?:(?:_f)?))|s(?:calet|ndload|oundout(?:(?:s)?)|pec(?:addm|di(?:ff|sp)|filt|hist|ptrk|s(?:cal|um)|trum)|tack|umtab)|tab(?:gen|map(?:(?:_i)?)|slice)|vbap(?:16|(?:[48])move|[48])|xyin)\\b)(?:(\\:)([A-Za-z]))?",
629
624
  "captures": {
630
625
  "1": {
631
626
  "name": "support.function.csound"
@@ -655,7 +650,7 @@
655
650
  },
656
651
  {
657
652
  "begin": "\\#include",
658
- "end": "\\n",
653
+ "end": "$",
659
654
  "beginCaptures": {
660
655
  "0": {
661
656
  "name": "keyword.include.preprocessor.csound"
@@ -734,7 +729,7 @@
734
729
  },
735
730
  {
736
731
  "begin": "\\#(?:i(?:fn?def)|undef)",
737
- "end": "\\n",
732
+ "end": "$",
738
733
  "beginCaptures": {
739
734
  "0": {
740
735
  "name": "keyword.preprocessor.csound"
@@ -764,7 +759,7 @@
764
759
  },
765
760
  {
766
761
  "name": "invalid.illegal.csound",
767
- "match": "[^\"\\\\\\n]*\\n"
762
+ "match": "[^\"\\\\]*[^\\n\"\\\\]$"
768
763
  }
769
764
  ]
770
765
  },
@@ -664,7 +664,8 @@
664
664
  "name": "constant.character.escape.codepoint.css"
665
665
  },
666
666
  {
667
- "match": "\\\\$\\n?",
667
+ "begin": "\\\\$\\s*",
668
+ "end": "^(?<!\\G)",
668
669
  "name": "constant.character.escape.newline.css"
669
670
  },
670
671
  {
@@ -1336,7 +1337,7 @@
1336
1337
  "property-keywords": {
1337
1338
  "patterns": [
1338
1339
  {
1339
- "match": "(?xi) (?<![\\w-])\n(above|absolute|active|add|additive|after-edge|alias|all|all-petite-caps|all-scroll|all-small-caps|alpha|alphabetic|alternate|alternate-reverse\n|always|antialiased|auto|auto-pos|available|avoid|avoid-column|avoid-page|avoid-region|backwards|balance|baseline|before-edge|below|bevel\n|bidi-override|blink|block|block-axis|block-start|block-end|bold|bolder|border|border-box|both|bottom|bottom-outside|break-all|break-word|bullets\n|butt|capitalize|caption|cell|center|central|char|circle|clip|clone|close-quote|closest-corner|closest-side|col-resize|collapse|color|color-burn\n|color-dodge|column|column-reverse|common-ligatures|compact|condensed|contain|content|content-box|contents|context-menu|contextual|copy|cover\n|crisp-edges|crispEdges|crosshair|cyclic|darken|dashed|decimal|default|dense|diagonal-fractions|difference|digits|disabled|disc|discretionary-ligatures\n|distribute|distribute-all-lines|distribute-letter|distribute-space|dot|dotted|double|double-circle|e-resize|each-line|ease|ease-in\n|ease-in-out|ease-out|economy|ellipse|ellipsis|embed|end|evenodd|ew-resize|exact|exclude|exclusion|expanded|extends|extra-condensed|extra-expanded\n|farthest-corner|farthest-side|fill|fill-available|fill-box|filled|fit-content|fixed|flat|flex|flex-end|flex-start|flip|forwards|freeze\n|from-image|full-width|geometricPrecision|georgian|grab|grabbing|grayscale|grid|groove|hand|hanging|hard-light|help|hidden|hide\n|historical-forms|historical-ligatures|horizontal|horizontal-tb|hue|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space\n|ideographic|inactive|infinite|inherit|initial|inline|inline-axis|inline-block|inline-end|inline-flex|inline-grid|inline-list-item|inline-start\n|inline-table|inset|inside|inter-character|inter-ideograph|inter-word|intersect|invert|isolate|isolate-override|italic|jis04|jis78|jis83\n|jis90|justify|justify-all|kannada|keep-all|landscape|large|larger|left|lighten|lighter|line|line-edge|line-through|linear|linearRGB\n|lining-nums|list-item|local|loose|lowercase|lr|lr-tb|ltr|luminance|luminosity|main-size|mandatory|manipulation|manual|margin-box|match-parent\n|match-source|mathematical|max-content|medium|menu|message-box|middle|min-content|miter|mixed|move|multiply|n-resize|narrower|ne-resize\n|nearest-neighbor|nesw-resize|newspaper|no-change|no-clip|no-close-quote|no-common-ligatures|no-contextual|no-discretionary-ligatures\n|no-drop|no-historical-ligatures|no-open-quote|no-repeat|none|nonzero|normal|not-allowed|nowrap|ns-resize|numbers|numeric|nw-resize|nwse-resize\n|oblique|oldstyle-nums|open|open-quote|optimizeLegibility|optimizeQuality|optimizeSpeed|ordinal|outset|outside|over|overlay|overline|padding\n|padding-box|page|painted|pan-down|pan-left|pan-right|pan-up|pan-x|pan-y|paused|petite-caps|pixelated|plaintext|pointer|portrait|pre|pre-line\n|pre-wrap|preserve-3d|progress|progressive|proportional-nums|proportional-width|proximity|radial|recto|region|relative|remove|repeat|repeat-[xy]\n|reset-size|reverse|revert|ridge|right|rl|rl-tb|round|row|row-resize|row-reverse|row-severse|rtl|ruby|ruby-base|ruby-base-container|ruby-text\n|ruby-text-container|run-in|running|s-resize|saturation|scale-down|screen|scroll|scroll-position|se-resize|semi-condensed|semi-expanded|separate\n|sesame|show|sideways|sideways-left|sideways-lr|sideways-right|sideways-rl|simplified|slashed-zero|slice|small|small-caps|small-caption|smaller\n|smooth|soft-light|solid|space|space-around|space-between|spell-out|square|sRGB|stacked-fractions|start|static|status-bar|step-end|step-start\n|sticky|stretch|strict|stroke|stroke-box|style|sub|subgrid|subpixel-antialiased|subtract|super|sw-resize|symbolic|table|table-caption|table-cell\n|table-column|table-column-group|table-footer-group|table-header-group|table-row|table-row-group|tabular-nums|tb|tb-rl|text|text-after-edge\n|text-before-edge|text-bottom|text-top|thick|thin|titling-caps|top|top-outside|touch|traditional|transparent|triangle|ultra-condensed|ultra-expanded\n|under|underline|unicase|unset|uppercase|upright|use-glyph-orientation|use-script|verso|vertical|vertical-ideographic|vertical-lr|vertical-rl\n|vertical-text|view-box|visible|visibleFill|visiblePainted|visibleStroke|w-resize|wait|wavy|weight|whitespace|wider|words|wrap|wrap-reverse\n|x-large|x-small|xx-large|xx-small|zero|zoom-in|zoom-out)\n(?![\\w-])",
1340
+ "match": "(?xi) (?<![\\w-])\n(above|absolute|active|add|additive|after-edge|alias|all|all-petite-caps|all-scroll|all-small-caps|alpha|alphabetic|alternate|alternate-reverse\n|always|antialiased|auto|auto-pos|available|avoid|avoid-column|avoid-page|avoid-region|backwards|balance|baseline|before-edge|below|bevel\n|bidi-override|blink|block|block-axis|block-start|block-end|bold|bolder|border|border-box|both|bottom|bottom-outside|break-all|break-word|bullets\n|butt|capitalize|caption|cell|center|central|char|circle|clip|clone|close-quote|closest-corner|closest-side|col-resize|collapse|color|color-burn\n|color-dodge|column|column-reverse|common-ligatures|compact|condensed|contain|content|content-box|contents|context-menu|contextual|copy|cover\n|crisp-edges|crispEdges|crosshair|cyclic|darken|dashed|decimal|default|dense|diagonal-fractions|difference|digits|disabled|disc|discretionary-ligatures\n|distribute|distribute-all-lines|distribute-letter|distribute-space|dot|dotted|double|double-circle|downleft|downright|e-resize|each-line|ease|ease-in\n|ease-in-out|ease-out|economy|ellipse|ellipsis|embed|end|evenodd|ew-resize|exact|exclude|exclusion|expanded|extends|extra-condensed|extra-expanded\n|fallback|farthest-corner|farthest-side|fill|fill-available|fill-box|filled|fit-content|fixed|flat|flex|flex-end|flex-start|flip|forwards|freeze\n|from-image|full-width|geometricPrecision|georgian|grab|grabbing|grayscale|grid|groove|hand|hanging|hard-light|help|hidden|hide\n|historical-forms|historical-ligatures|horizontal|horizontal-tb|hue|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space\n|ideographic|inactive|infinite|inherit|initial|inline|inline-axis|inline-block|inline-end|inline-flex|inline-grid|inline-list-item|inline-start\n|inline-table|inset|inside|inter-character|inter-ideograph|inter-word|intersect|invert|isolate|isolate-override|italic|jis04|jis78|jis83\n|jis90|justify|justify-all|kannada|keep-all|landscape|large|larger|left|lighten|lighter|line|line-edge|line-through|linear|linearRGB\n|lining-nums|list-item|local|loose|lowercase|lr|lr-tb|ltr|luminance|luminosity|main-size|mandatory|manipulation|manual|margin-box|match-parent\n|match-source|mathematical|max-content|medium|menu|message-box|middle|min-content|miter|mixed|move|multiply|n-resize|narrower|ne-resize\n|nearest-neighbor|nesw-resize|newspaper|no-change|no-clip|no-close-quote|no-common-ligatures|no-contextual|no-discretionary-ligatures\n|no-drop|no-historical-ligatures|no-open-quote|no-repeat|none|nonzero|normal|not-allowed|nowrap|ns-resize|numbers|numeric|nw-resize|nwse-resize\n|oblique|oldstyle-nums|open|open-quote|optimizeLegibility|optimizeQuality|optimizeSpeed|optional|ordinal|outset|outside|over|overlay|overline|padding\n|padding-box|page|painted|pan-down|pan-left|pan-right|pan-up|pan-x|pan-y|paused|petite-caps|pixelated|plaintext|pointer|portrait|pre|pre-line\n|pre-wrap|preserve-3d|progress|progressive|proportional-nums|proportional-width|proximity|radial|recto|region|relative|remove|repeat|repeat-[xy]\n|reset-size|reverse|revert|ridge|right|rl|rl-tb|round|row|row-resize|row-reverse|row-severse|rtl|ruby|ruby-base|ruby-base-container|ruby-text\n|ruby-text-container|run-in|running|s-resize|saturation|scale-down|screen|scroll|scroll-position|se-resize|semi-condensed|semi-expanded|separate\n|sesame|show|sideways|sideways-left|sideways-lr|sideways-right|sideways-rl|simplified|slashed-zero|slice|small|small-caps|small-caption|smaller\n|smooth|soft-light|solid|space|space-around|space-between|spell-out|square|sRGB|stacked-fractions|start|static|status-bar|swap|step-end|step-start\n|sticky|stretch|strict|stroke|stroke-box|style|sub|subgrid|subpixel-antialiased|subtract|super|sw-resize|symbolic|table|table-caption|table-cell\n|table-column|table-column-group|table-footer-group|table-header-group|table-row|table-row-group|tabular-nums|tb|tb-rl|text|text-after-edge\n|text-before-edge|text-bottom|text-top|thick|thin|titling-caps|top|top-outside|touch|traditional|transparent|triangle|ultra-condensed|ultra-expanded\n|under|underline|unicase|unset|upleft|uppercase|upright|use-glyph-orientation|use-script|verso|vertical|vertical-ideographic|vertical-lr|vertical-rl\n|vertical-text|view-box|visible|visibleFill|visiblePainted|visibleStroke|w-resize|wait|wavy|weight|whitespace|wider|words|wrap|wrap-reverse\n|x-large|x-small|xx-large|xx-small|zero|zoom-in|zoom-out)\n(?![\\w-])",
1340
1341
  "name": "support.constant.property-value.css"
1341
1342
  },
1342
1343
  {
@@ -1356,7 +1357,7 @@
1356
1357
  "property-names": {
1357
1358
  "patterns": [
1358
1359
  {
1359
- "match": "(?xi) (?<![\\w-])\n(?:\n # Standard CSS\n additive-symbols|align-content|align-items|align-self|all|animation|animation-delay|animation-direction\n | animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state\n | animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode\n | background-clip|background-color|background-image|background-origin|background-position|background-position-[xy]\n | background-repeat|background-size|block-size|border|border-block-end|border-block-end-color|border-block-end-style\n | border-block-end-width|border-block-start|border-block-start-color|border-block-start-style\n | border-block-start-width|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius\n | border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset\n | border-image-repeat|border-image-slice|border-image-source|border-image-width|border-inline-end\n | border-inline-end-color|border-inline-end-style|border-inline-end-width|border-inline-start\n | border-inline-start-color|border-inline-start-style|border-inline-start-width|border-left|border-left-color\n | border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style\n | border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius\n | border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-decoration-break\n | box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|clip-path|color\n | column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width\n | column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display\n | empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float\n | font|font-family|font-feature-settings|font-kerning|font-language-override|font-size|font-size-adjust\n | font-stretch|font-style|font-synthesis|font-variant|font-variant-alternates|font-variant-caps\n | font-variant-east-asian|font-variant-ligatures|font-variant-numeric|font-variant-position|font-weight\n | grid|grid-area|grid-auto-columns|grid-auto-flow|grid-auto-rows|grid-column|grid-column-end|grid-column-gap\n | grid-column-start|grid-gap|grid-row|grid-row-end|grid-row-gap|grid-row-start|grid-template|grid-template-areas\n | grid-template-columns|grid-template-rows|height|hyphens|image-orientation|image-rendering|image-resolution\n | ime-mode|inline-size|isolation|justify-content|left|letter-spacing|line-break|line-height|list-style\n | list-style-image|list-style-position|list-style-type|margin|margin-block-end|margin-block-start|margin-bottom\n | margin-inline-end|margin-inline-start|margin-left|margin-right|margin-top|mask|mask-clip|mask-composite\n | mask-image|mask-mode|mask-origin|mask-position|mask-repeat|mask-size|mask-type|max-block-size|max-height\n | max-inline-size|max-width|max-zoom|min-block-size|min-height|min-inline-size|min-width|min-zoom|mix-blend-mode\n | negative|object-fit|object-position|offset-block-end|offset-block-start|offset-inline-end|offset-inline-start\n | opacity|order|orientation|orphans|outline|outline-color|outline-offset|outline-style|outline-width|overflow\n | overflow-wrap|overflow-[xy]|pad|padding|padding-block-end|padding-block-start|padding-bottom|padding-inline-end\n | padding-inline-start|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside\n | perspective|perspective-origin|pointer-events|position|prefix|quotes|range|resize|right|ruby-align|ruby-merge\n | ruby-position|scroll-behavior|scroll-snap-coordinate|scroll-snap-destination|scroll-snap-type|shape-image-threshold\n | shape-margin|shape-outside|speak-as|src|suffix|symbols|system|tab-size|table-layout|text-align|text-align-last\n | text-combine-upright|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-emphasis\n | text-emphasis-color|text-emphasis-position|text-emphasis-style|text-indent|text-orientation|text-overflow\n | text-rendering|text-shadow|text-transform|text-underline-position|top|touch-action|transform|transform-box\n | transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property\n | transition-timing-function|unicode-bidi|unicode-range|user-zoom|vertical-align|visibility|white-space|widows\n | width|will-change|word-break|word-spacing|word-wrap|writing-mode|z-index|zoom\n\n # SVG attributes\n | alignment-baseline|baseline-shift|clip-rule|color-interpolation|color-interpolation-filters|color-profile\n | color-rendering|dominant-baseline|enable-background|fill|fill-opacity|fill-rule|flood-color|flood-opacity\n | glyph-orientation-horizontal|glyph-orientation-vertical|kerning|lighting-color|marker-end|marker-mid\n | marker-start|shape-rendering|stop-color|stop-opacity|stroke|stroke-dasharray|stroke-dashoffset|stroke-linecap\n | stroke-linejoin|stroke-miterlimit|stroke-opacity|stroke-width|text-anchor|x|y\n\n # Not listed on MDN; presumably deprecated\n | adjust|after|align|align-last|alignment|alignment-adjust|appearance|attachment|azimuth|background-break\n | balance|baseline|before|bidi|binding|bookmark|bookmark-label|bookmark-level|bookmark-target|border-length\n | bottom-color|bottom-left-radius|bottom-right-radius|bottom-style|bottom-width|box|box-align|box-direction\n | box-flex|box-flex-group|box-lines|box-ordinal-group|box-orient|box-pack|break|character|collapse|column\n | column-break-after|column-break-before|count|counter|crop|cue|cue-after|cue-before|decoration|decoration-break\n | delay|display-model|display-role|down|drop|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust\n | drop-initial-before-align|drop-initial-size|drop-initial-value|duration|elevation|emphasis|family|fit|fit-position\n | flex-group|float-offset|gap|grid-columns|grid-rows|hanging-punctuation|header|hyphenate|hyphenate-after|hyphenate-before\n | hyphenate-character|hyphenate-lines|hyphenate-resource|icon|image|increment|indent|index|initial-after-adjust\n | initial-after-align|initial-before-adjust|initial-before-align|initial-size|initial-value|inline-box-align|iteration-count\n | justify|label|left-color|left-style|left-width|length|level|line|line-stacking|line-stacking-ruby|line-stacking-shift\n | line-stacking-strategy|lines|list|mark|mark-after|mark-before|marks|marquee|marquee-direction|marquee-play-count|marquee-speed\n | marquee-style|max|min|model|move-to|name|nav|nav-down|nav-index|nav-left|nav-right|nav-up|new|numeral|offset|ordinal-group\n | orient|origin|overflow-style|overhang|pack|page|page-policy|pause|pause-after|pause-before|phonemes|pitch|pitch-range\n | play-count|play-during|play-state|point|presentation|presentation-level|profile|property|punctuation|punctuation-trim\n | radius|rate|rendering-intent|repeat|replace|reset|resolution|resource|respond-to|rest|rest-after|rest-before|richness\n | right-color|right-style|right-width|role|rotation|rotation-point|rows|ruby|ruby-overhang|ruby-span|rule|rule-color\n | rule-style|rule-width|shadow|size|size-adjust|sizing|space|space-collapse|spacing|span|speak|speak-header|speak-numeral\n | speak-punctuation|speech|speech-rate|speed|stacking|stacking-ruby|stacking-shift|stacking-strategy|stress|stretch\n | string-set|style|style-image|style-position|style-type|target|target-name|target-new|target-position|text|text-height\n | text-justify|text-outline|text-replace|text-wrap|timing-function|top-color|top-left-radius|top-right-radius|top-style\n | top-width|trim|unicode|up|user-select|variant|voice|voice-balance|voice-duration|voice-family|voice-pitch|voice-pitch-range\n | voice-rate|voice-stress|voice-volume|volume|weight|white|white-space-collapse|word|wrap\n)\n(?![\\w-])",
1360
+ "match": "(?xi) (?<![\\w-])\n(?:\n # Standard CSS\n additive-symbols|align-content|align-items|align-self|all|animation|animation-delay|animation-direction\n | animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state\n | animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode\n | background-clip|background-color|background-image|background-origin|background-position|background-position-[xy]\n | background-repeat|background-size|block-size|border|border-block-end|border-block-end-color|border-block-end-style\n | border-block-end-width|border-block-start|border-block-start-color|border-block-start-style\n | border-block-start-width|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius\n | border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset\n | border-image-repeat|border-image-slice|border-image-source|border-image-width|border-inline-end\n | border-inline-end-color|border-inline-end-style|border-inline-end-width|border-inline-start\n | border-inline-start-color|border-inline-start-style|border-inline-start-width|border-left|border-left-color\n | border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style\n | border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius\n | border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-decoration-break\n | box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|clip-path|color\n | column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width\n | column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display\n | empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float\n | font|font-display|font-family|font-feature-settings|font-kerning|font-language-override|font-size|font-size-adjust\n | font-stretch|font-style|font-synthesis|font-variant|font-variant-alternates|font-variant-caps\n | font-variant-east-asian|font-variant-ligatures|font-variant-numeric|font-variant-position|font-weight\n | grid|grid-area|grid-auto-columns|grid-auto-flow|grid-auto-rows|grid-column|grid-column-end|grid-column-gap\n | grid-column-start|grid-gap|grid-row|grid-row-end|grid-row-gap|grid-row-start|grid-template|grid-template-areas\n | grid-template-columns|grid-template-rows|height|hyphens|image-orientation|image-rendering|image-resolution\n | ime-mode|inline-size|isolation|justify-content|left|letter-spacing|line-break|line-height|list-style\n | list-style-image|list-style-position|list-style-type|margin|margin-block-end|margin-block-start|margin-bottom\n | margin-inline-end|margin-inline-start|margin-left|margin-right|margin-top|mask|mask-clip|mask-composite\n | mask-image|mask-mode|mask-origin|mask-position|mask-repeat|mask-size|mask-type|max-block-size|max-height\n | max-inline-size|max-width|max-zoom|min-block-size|min-height|min-inline-size|min-width|min-zoom|mix-blend-mode\n | negative|object-fit|object-position|offset-block-end|offset-block-start|offset-inline-end|offset-inline-start\n | opacity|order|orientation|orphans|outline|outline-color|outline-offset|outline-style|outline-width|overflow\n | overflow-wrap|overflow-[xy]|pad|padding|padding-block-end|padding-block-start|padding-bottom|padding-inline-end\n | padding-inline-start|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside\n | perspective|perspective-origin|pointer-events|position|prefix|quotes|range|resize|right|ruby-align|ruby-merge\n | ruby-position|scroll-behavior|scroll-snap-coordinate|scroll-snap-destination|scroll-snap-type|shape-image-threshold\n | shape-margin|shape-outside|speak-as|src|suffix|symbols|system|tab-size|table-layout|text-align|text-align-last\n | text-combine-upright|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-emphasis\n | text-emphasis-color|text-emphasis-position|text-emphasis-style|text-indent|text-orientation|text-overflow\n | text-rendering|text-shadow|text-transform|text-underline-position|top|touch-action|transform|transform-box\n | transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property\n | transition-timing-function|unicode-bidi|unicode-range|user-zoom|vertical-align|visibility|white-space|widows\n | width|will-change|word-break|word-spacing|word-wrap|writing-mode|z-index|zoom\n\n # SVG attributes\n | alignment-baseline|baseline-shift|clip-rule|color-interpolation|color-interpolation-filters|color-profile\n | color-rendering|dominant-baseline|enable-background|fill|fill-opacity|fill-rule|flood-color|flood-opacity\n | glyph-orientation-horizontal|glyph-orientation-vertical|kerning|lighting-color|marker-end|marker-mid\n | marker-start|shape-rendering|stop-color|stop-opacity|stroke|stroke-dasharray|stroke-dashoffset|stroke-linecap\n | stroke-linejoin|stroke-miterlimit|stroke-opacity|stroke-width|text-anchor|x|y\n\n # Not listed on MDN; presumably deprecated\n | adjust|after|align|align-last|alignment|alignment-adjust|appearance|attachment|azimuth|background-break\n | balance|baseline|before|bidi|binding|bookmark|bookmark-label|bookmark-level|bookmark-target|border-length\n | bottom-color|bottom-left-radius|bottom-right-radius|bottom-style|bottom-width|box|box-align|box-direction\n | box-flex|box-flex-group|box-lines|box-ordinal-group|box-orient|box-pack|break|character|collapse|column\n | column-break-after|column-break-before|count|counter|crop|cue|cue-after|cue-before|decoration|decoration-break\n | delay|display-model|display-role|down|drop|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust\n | drop-initial-before-align|drop-initial-size|drop-initial-value|duration|elevation|emphasis|family|fit|fit-position\n | flex-group|float-offset|gap|grid-columns|grid-rows|hanging-punctuation|header|hyphenate|hyphenate-after|hyphenate-before\n | hyphenate-character|hyphenate-lines|hyphenate-resource|icon|image|increment|indent|index|initial-after-adjust\n | initial-after-align|initial-before-adjust|initial-before-align|initial-size|initial-value|inline-box-align|iteration-count\n | justify|label|left-color|left-style|left-width|length|level|line|line-stacking|line-stacking-ruby|line-stacking-shift\n | line-stacking-strategy|lines|list|mark|mark-after|mark-before|marks|marquee|marquee-direction|marquee-play-count|marquee-speed\n | marquee-style|max|min|model|move-to|name|nav|nav-down|nav-index|nav-left|nav-right|nav-up|new|numeral|offset|ordinal-group\n | orient|origin|overflow-style|overhang|pack|page|page-policy|pause|pause-after|pause-before|phonemes|pitch|pitch-range\n | play-count|play-during|play-state|point|presentation|presentation-level|profile|property|punctuation|punctuation-trim\n | radius|rate|rendering-intent|repeat|replace|reset|resolution|resource|respond-to|rest|rest-after|rest-before|richness\n | right-color|right-style|right-width|role|rotation|rotation-point|rows|ruby|ruby-overhang|ruby-span|rule|rule-color\n | rule-style|rule-width|shadow|size|size-adjust|sizing|space|space-collapse|spacing|span|speak|speak-header|speak-numeral\n | speak-punctuation|speech|speech-rate|speed|stacking|stacking-ruby|stacking-shift|stacking-strategy|stress|stretch\n | string-set|style|style-image|style-position|style-type|target|target-name|target-new|target-position|text|text-height\n | text-justify|text-outline|text-replace|text-wrap|timing-function|top-color|top-left-radius|top-right-radius|top-style\n | top-width|trim|unicode|up|user-select|variant|voice|voice-balance|voice-duration|voice-family|voice-pitch|voice-pitch-range\n | voice-rate|voice-stress|voice-volume|volume|weight|white|white-space-collapse|word|wrap\n)\n(?![\\w-])",
1360
1361
  "name": "support.type.property-name.css"
1361
1362
  },
1362
1363
  {
@@ -1409,7 +1410,7 @@
1409
1410
  "name": "invalid.illegal.colon.css"
1410
1411
  }
1411
1412
  },
1412
- "match": "(?xi)\n(:)(:*)\n(?: active|any-link|checked|default|disabled|empty|enabled|first\n | (?:first|last|only)-(?:child|of-type)|focus|fullscreen|host|hover\n | in-range|indeterminate|invalid|left|link|optional|out-of-range\n | read-only|read-write|required|right|root|scope|target|unresolved\n | valid|visited\n)(?![\\w-]|\\s*[;}])",
1413
+ "match": "(?xi)\n(:)(:*)\n(?: active|any-link|checked|default|disabled|empty|enabled|first\n | (?:first|last|only)-(?:child|of-type)|focus|focus-within|fullscreen|host|hover\n | in-range|indeterminate|invalid|left|link|optional|out-of-range\n | read-only|read-write|required|right|root|scope|target|unresolved\n | valid|visited\n)(?![\\w-]|\\s*[;}])",
1413
1414
  "name": "entity.other.attribute-name.pseudo-class.css"
1414
1415
  },
1415
1416
  "pseudo-elements": {
@@ -1665,7 +1666,7 @@
1665
1666
  ]
1666
1667
  }
1667
1668
  },
1668
- "match": "(?x)\n(-?(?!\\d)(?:[\\w-]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+)\n\\s*\n(?=[~|^\\]$*=]|/\\*)"
1669
+ "match": "(?x)\n(-?(?!\\d)(?>[\\w-]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+)\n\\s*\n(?=[~|^\\]$*=]|/\\*)"
1669
1670
  }
1670
1671
  ]
1671
1672
  },
@@ -0,0 +1,1584 @@
1
+ {
2
+ "name": "DataWeave",
3
+ "scopeName": "source.data-weave",
4
+ "fileTypes": [
5
+ "dwl"
6
+ ],
7
+ "uuid": "ba6390ae-c50f-4dce-97f1-951dab8fc607",
8
+ "patterns": [
9
+ {
10
+ "include": "#comments"
11
+ },
12
+ {
13
+ "include": "#directives"
14
+ },
15
+ {
16
+ "match": "(---)",
17
+ "name": "keyword.operator.body-marker.dw"
18
+ },
19
+ {
20
+ "include": "#expressions"
21
+ },
22
+ {
23
+ "match": "([^\\s]+)",
24
+ "name": "invalid"
25
+ }
26
+ ],
27
+ "repository": {
28
+ "directives": {
29
+ "patterns": [
30
+ {
31
+ "include": "#dw-directive"
32
+ },
33
+ {
34
+ "include": "#import-directive"
35
+ },
36
+ {
37
+ "include": "#type-directive"
38
+ },
39
+ {
40
+ "include": "#fun-directive"
41
+ },
42
+ {
43
+ "include": "#var-directive"
44
+ },
45
+ {
46
+ "include": "#ns-directive"
47
+ },
48
+ {
49
+ "include": "#input-directive"
50
+ },
51
+ {
52
+ "include": "#output-directive"
53
+ }
54
+ ]
55
+ },
56
+ "function_call": {
57
+ "name": "function_call",
58
+ "begin": "\\s*\\(",
59
+ "end": "\\s*\\)",
60
+ "patterns": [
61
+ {
62
+ "include": "#punctuation-comma"
63
+ },
64
+ {
65
+ "include": "#expressions"
66
+ }
67
+ ]
68
+ },
69
+ "variable-reference": {
70
+ "patterns": [
71
+ {
72
+ "name": "variable.other.dw",
73
+ "match": "\\b(?!(fun|input|output|type|var|ns|import|%dw|private|---)\\b)((\\+\\+|\\-\\-|[A-Za-z])[a-zA-Z0-9_]*)"
74
+ },
75
+ {
76
+ "name": "invalid",
77
+ "match": "\\b(fun|input|output|type|var|ns|import|private)\\b"
78
+ },
79
+ {
80
+ "name": "variable.parameter.dw",
81
+ "match": "(\\$+)"
82
+ }
83
+ ]
84
+ },
85
+ "cast": {
86
+ "begin": "(?<!\\.|\\$)\\b(as|is)\\s+",
87
+ "beginCaptures": {
88
+ "1": {
89
+ "name": "keyword.control.as.dw"
90
+ }
91
+ },
92
+ "end": "(?=$|^|[;,:})\\]\\s])",
93
+ "patterns": [
94
+ {
95
+ "include": "#types"
96
+ }
97
+ ]
98
+ },
99
+ "case-clause": {
100
+ "name": "case-clause.expr.dw",
101
+ "begin": "(?<!\\.|\\$)\\b(case|else(?=\\s*->))\\b(?!\\$|\\.)",
102
+ "beginCaptures": {
103
+ "1": {
104
+ "name": "keyword.control.switch.dw"
105
+ }
106
+ },
107
+ "end": "\\-\\>",
108
+ "endCaptures": {
109
+ "0": {
110
+ "name": "keyword.control.switch.dw"
111
+ }
112
+ },
113
+ "patterns": [
114
+ {
115
+ "begin": "(?<!\\.|\\$)\\b(is)\\s+",
116
+ "beginCaptures": {
117
+ "1": {
118
+ "name": "keyword.control.is.dw"
119
+ }
120
+ },
121
+ "end": "(?=\\-\\>)",
122
+ "patterns": [
123
+ {
124
+ "include": "#types"
125
+ }
126
+ ]
127
+ },
128
+ {
129
+ "begin": "(?<!\\.|\\$)\\b(matches)\\b",
130
+ "beginCaptures": {
131
+ "1": {
132
+ "name": "keyword.control.matches.dw"
133
+ }
134
+ },
135
+ "end": "(?=\\-\\>)",
136
+ "patterns": [
137
+ {
138
+ "include": "#expressions"
139
+ }
140
+ ]
141
+ },
142
+ {
143
+ "begin": "(?<!\\.|\\$)\\b([A-Za-z][a-zA-Z0-9_]*)\\s*:\\s+",
144
+ "beginCaptures": {
145
+ "1": {
146
+ "name": "entity.name.variable.dw"
147
+ }
148
+ },
149
+ "end": "(?=\\-\\>)",
150
+ "patterns": [
151
+ {
152
+ "include": "#expressions"
153
+ }
154
+ ]
155
+ },
156
+ {
157
+ "begin": "(?<!\\.|\\$)\\b([A-Za-z][a-zA-Z0-9_]*)\\s*(if|matches)\\s+",
158
+ "beginCaptures": {
159
+ "1": {
160
+ "name": "entity.name.variable.dw"
161
+ },
162
+ "2": {
163
+ "name": "keyword.control.if.dw"
164
+ }
165
+ },
166
+ "end": "(?=\\-\\>)",
167
+ "patterns": [
168
+ {
169
+ "include": "#expressions"
170
+ }
171
+ ]
172
+ },
173
+ {
174
+ "include": "#expressions"
175
+ }
176
+ ]
177
+ },
178
+ "comments": {
179
+ "patterns": [
180
+ {
181
+ "name": "comment.block.dw",
182
+ "begin": "/\\*",
183
+ "end": "\\*/",
184
+ "captures": {
185
+ "0": {
186
+ "name": "punctuation.definition.comment.dw"
187
+ }
188
+ }
189
+ },
190
+ {
191
+ "match": "\\s*((//).*$\\n?)",
192
+ "captures": {
193
+ "1": {
194
+ "name": "comment.line.double-slash.dw"
195
+ },
196
+ "2": {
197
+ "name": "punctuation.definition.comment.dw"
198
+ }
199
+ }
200
+ }
201
+ ]
202
+ },
203
+ "constants": {
204
+ "patterns": [
205
+ {
206
+ "name": "constant.language.dw",
207
+ "match": "\\b(true|false|null)\\b"
208
+ },
209
+ {
210
+ "name": "constant.numeric.dw",
211
+ "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDd]|UL|ul)?\\b"
212
+ },
213
+ {
214
+ "begin": "\\|",
215
+ "beginCaptures": {
216
+ "0": {
217
+ "name": "constant.numeric.dw"
218
+ }
219
+ },
220
+ "end": "\\|",
221
+ "endCaptures": {
222
+ "0": {
223
+ "name": "constant.numeric.dw"
224
+ }
225
+ },
226
+ "patterns": [
227
+ {
228
+ "name": "constant.numeric.dw",
229
+ "match": "([0-9]+)"
230
+ },
231
+ {
232
+ "name": "constant.character.escape.dw",
233
+ "match": "([+:\\-WYMDTHSPZ\\.])"
234
+ },
235
+ {
236
+ "name": "invalid",
237
+ "match": "([^\\|])"
238
+ }
239
+ ]
240
+ }
241
+ ]
242
+ },
243
+ "dw-directive": {
244
+ "name": "meta.directive.version.dw",
245
+ "begin": "(?<!\\.|\\$)(%dw)\\s+([0-9]\\.[0-9])(?!\\$|\\.)",
246
+ "beginCaptures": {
247
+ "1": {
248
+ "name": "comment.dw"
249
+ },
250
+ "2": {
251
+ "name": "comment.dw"
252
+ }
253
+ },
254
+ "end": "(?=\\n)"
255
+ },
256
+ "infix": {
257
+ "name": "support.function.dw",
258
+ "match": "(?<!^|,|\\[|\\(|=|\\+|>|<|\\-|\\*|:|\\{|case|is|else|not|as|and|or)(?<=[a-zA-Z0-9_$\\}\\])\"'`|/])\\s*(?!(var|match|case|else|fun|input|output|is|as|default|ns|import|null|false|true|using|do|not|and|or)\\s)(\\+\\+|\\-\\-|[a-zA-Z][a-zA-Z_0-9]*)(\\s+|\\s*(?=[\"'/|{]))"
259
+ },
260
+ "expressions": {
261
+ "name": "expression",
262
+ "patterns": [
263
+ {
264
+ "name": "keyword.other.dw",
265
+ "match": "\\b(not)\\s+"
266
+ },
267
+ {
268
+ "include": "#paren-expression"
269
+ },
270
+ {
271
+ "include": "#strings"
272
+ },
273
+ {
274
+ "include": "#constants"
275
+ },
276
+ {
277
+ "include": "#comments"
278
+ },
279
+ {
280
+ "include": "#match-statement"
281
+ },
282
+ {
283
+ "include": "#using-statement"
284
+ },
285
+ {
286
+ "include": "#do-statement"
287
+ },
288
+ {
289
+ "include": "#if-statement"
290
+ },
291
+ {
292
+ "include": "#regex"
293
+ },
294
+ {
295
+ "include": "#keywords"
296
+ },
297
+ {
298
+ "include": "#object-literal"
299
+ },
300
+ {
301
+ "include": "#array-literal"
302
+ },
303
+ {
304
+ "include": "#cast"
305
+ },
306
+ {
307
+ "include": "#object-member"
308
+ },
309
+ {
310
+ "include": "#variable-reference"
311
+ },
312
+ {
313
+ "include": "#selectors"
314
+ },
315
+ {
316
+ "include": "#directives"
317
+ },
318
+ {
319
+ "include": "#infix"
320
+ }
321
+ ]
322
+ },
323
+ "generics": {
324
+ "patterns": [
325
+ {
326
+ "begin": "(:)",
327
+ "beginCaptures": {
328
+ "1": {
329
+ "name": "keyword.operator.declaration.dw"
330
+ }
331
+ },
332
+ "end": "(?=,|>)",
333
+ "patterns": [
334
+ {
335
+ "include": "#types"
336
+ }
337
+ ]
338
+ },
339
+ {
340
+ "name": "keyword.operator.extends.dw",
341
+ "match": "<:"
342
+ },
343
+ {
344
+ "include": "#keywords"
345
+ },
346
+ {
347
+ "name": "entity.name.type.parameter.dw",
348
+ "match": "\\w+"
349
+ }
350
+ ]
351
+ },
352
+ "input-directive": {
353
+ "name": "meta.directive.ns.dw",
354
+ "begin": "(?<!\\.|\\$)\\b(input)\\s+([[:alpha:]][[:alnum:]]*)\\s*",
355
+ "end": "(?=\\n)",
356
+ "beginCaptures": {
357
+ "1": {
358
+ "name": "storage.type.dw"
359
+ },
360
+ "2": {
361
+ "name": "entity.name.variable.dw"
362
+ }
363
+ },
364
+ "patterns": [
365
+ {
366
+ "begin": "(\\:\\s*)",
367
+ "beginCaptures": {
368
+ "1": {
369
+ "name": "keyword.other.dw"
370
+ }
371
+ },
372
+ "end": "(\\s|\\n)",
373
+ "patterns": [
374
+ {
375
+ "include": "#types"
376
+ }
377
+ ]
378
+ },
379
+ {
380
+ "match": "([^{\\n\\s])",
381
+ "name": "string.mime.dw"
382
+ }
383
+ ]
384
+ },
385
+ "keywords": {
386
+ "patterns": [
387
+ {
388
+ "name": "keyword.reserved.dw",
389
+ "match": "\\b(throw|for|yield|enum|private|async)\\b"
390
+ },
391
+ {
392
+ "name": "invalid",
393
+ "match": "\\b(not)\\b"
394
+ },
395
+ {
396
+ "name": "keyword.control.dw",
397
+ "match": "\\b(if|else|while|for|do|using|unless|default)\\b"
398
+ },
399
+ {
400
+ "name": "keyword.operator.comparison.dw",
401
+ "match": "(~=|==|!=|!=|<=|>=|<|>)"
402
+ },
403
+ {
404
+ "name": "keyword.operator.assignment.dw",
405
+ "match": "(=)"
406
+ },
407
+ {
408
+ "name": "keyword.operator.declaration.dw",
409
+ "match": "(:)"
410
+ },
411
+ {
412
+ "name": "keyword.operator.arithmetic.dw",
413
+ "match": "(\\-|\\+|\\*|\\/)"
414
+ },
415
+ {
416
+ "name": "keyword.other.dw",
417
+ "match": "\\b(and|or)\\b"
418
+ }
419
+ ]
420
+ },
421
+ "match-block": {
422
+ "name": "match-block.expr.dw",
423
+ "begin": "\\{",
424
+ "beginCaptures": {
425
+ "0": {
426
+ "name": "punctuation.definition.block.dw"
427
+ }
428
+ },
429
+ "end": "(?=\\})",
430
+ "patterns": [
431
+ {
432
+ "include": "#case-clause"
433
+ },
434
+ {
435
+ "include": "#expressions"
436
+ }
437
+ ]
438
+ },
439
+ "match-statement": {
440
+ "name": "match-statement.expr.dw",
441
+ "begin": "(?<!\\.|\\$)\\b(match)\\s*(?=\\{)",
442
+ "beginCaptures": {
443
+ "1": {
444
+ "name": "keyword.control.switch.dw"
445
+ }
446
+ },
447
+ "end": "\\}",
448
+ "endCaptures": {
449
+ "1": {
450
+ "name": "punctuation.definition.block.dw"
451
+ }
452
+ },
453
+ "patterns": [
454
+ {
455
+ "include": "#match-block"
456
+ }
457
+ ]
458
+ },
459
+ "using-statement": {
460
+ "name": "using-statement.expr.dw",
461
+ "begin": "(?<!\\.|\\$)\\b(using)\\s*(\\()",
462
+ "beginCaptures": {
463
+ "1": {
464
+ "name": "keyword.control.using.dw"
465
+ },
466
+ "2": {
467
+ "name": "punctuation.definitions.begin.dw"
468
+ }
469
+ },
470
+ "end": "(\\))",
471
+ "endCaptures": {
472
+ "1": {
473
+ "name": "punctuation.definitions.end.dw"
474
+ }
475
+ },
476
+ "patterns": [
477
+ {
478
+ "match": "((?:\\+\\+|\\-\\-|[A-Za-z])(?:[a-zA-Z0-9_]*))(\\s*=)",
479
+ "captures": {
480
+ "1": {
481
+ "name": "entity.name.variable.dw"
482
+ },
483
+ "2": {
484
+ "name": "keyword.operator.dw"
485
+ }
486
+ }
487
+ },
488
+ {
489
+ "include": "#expressions"
490
+ }
491
+ ]
492
+ },
493
+ "do-statement": {
494
+ "name": "do-statement.expr.dw",
495
+ "begin": "(?<!\\.|\\$)\\b(do)\\s*(\\{)",
496
+ "beginCaptures": {
497
+ "1": {
498
+ "name": "keyword.control.do.dw"
499
+ },
500
+ "2": {
501
+ "name": "punctuation.definitions.begin.dw"
502
+ }
503
+ },
504
+ "end": "(\\})",
505
+ "endCaptures": {
506
+ "1": {
507
+ "name": "punctuation.definitions.end.dw"
508
+ }
509
+ },
510
+ "patterns": [
511
+ {
512
+ "include": "#comments"
513
+ },
514
+ {
515
+ "include": "#directives"
516
+ },
517
+ {
518
+ "match": "(---)",
519
+ "name": "keyword.operator.body-marker.dw"
520
+ },
521
+ {
522
+ "include": "#expressions"
523
+ },
524
+ {
525
+ "match": "([^\\s]+)",
526
+ "name": "invalid"
527
+ }
528
+ ]
529
+ },
530
+ "if-statement": {
531
+ "name": "meta.if.dw",
532
+ "begin": "(?<!\\.|\\$)\\b(if\\s*)\\(",
533
+ "beginCaptures": {
534
+ "1": {
535
+ "name": "keyword.control.if.dw"
536
+ }
537
+ },
538
+ "end": "\\)",
539
+ "patterns": [
540
+ {
541
+ "include": "#expressions"
542
+ }
543
+ ]
544
+ },
545
+ "ns-directive": {
546
+ "name": "meta.directive.ns.dw",
547
+ "begin": "(?<!\\.|\\$)\\b(ns)\\s+([A-Za-z][a-zA-Z0-9_]*)\\s+([^\\n]*)(?!\\$|\\.)",
548
+ "beginCaptures": {
549
+ "1": {
550
+ "name": "storage.type.dw"
551
+ },
552
+ "2": {
553
+ "name": "entity.name.namespace.dw"
554
+ },
555
+ "3": {
556
+ "name": "meta.definition.ns.dw string.url.dw"
557
+ }
558
+ },
559
+ "end": "(?=\\n)"
560
+ },
561
+ "object-literal": {
562
+ "name": "meta.objectliteral.dw",
563
+ "begin": "\\{",
564
+ "beginCaptures": {
565
+ "0": {
566
+ "name": "punctuation.definition.block.dw"
567
+ }
568
+ },
569
+ "end": "\\}",
570
+ "endCaptures": {
571
+ "0": {
572
+ "name": "punctuation.definition.block.dw"
573
+ }
574
+ },
575
+ "patterns": [
576
+ {
577
+ "include": "#object-member"
578
+ }
579
+ ]
580
+ },
581
+ "attr-literal": {
582
+ "name": "meta.attributes.dw",
583
+ "begin": "\\@\\(",
584
+ "beginCaptures": {
585
+ "0": {
586
+ "name": "keyword.operator.attributes.dw"
587
+ }
588
+ },
589
+ "end": "\\)",
590
+ "endCaptures": {
591
+ "0": {
592
+ "name": "keyword.operator.attributes.dw"
593
+ }
594
+ },
595
+ "patterns": [
596
+ {
597
+ "include": "#object-member"
598
+ }
599
+ ]
600
+ },
601
+ "selectors": {
602
+ "name": "meta.selector.data-weave",
603
+ "begin": "(?<![\\[\\(:+*/\\-])(\\s*\\.\\.\\*|\\s*\\.\\.|\\s*\\.\\*|\\s*\\.\\@|\\s*\\.#|\\s*\\.&|\\s*\\.|(?=\\[)|\\:\\:)",
604
+ "end": "(?=\\s|,|\\}|\\)|\\n|\\]|\\(|-|$)",
605
+ "patterns": [
606
+ {
607
+ "name": "meta.object.member.dw",
608
+ "match": "\\b([[:alpha:]][_[:alnum:]]+#)",
609
+ "captures": {
610
+ "0": {
611
+ "name": "variable.language.dw"
612
+ }
613
+ }
614
+ },
615
+ {
616
+ "match": "((?:[A-Za-z])([a-zA-Z0-9_]*)[?!]?|(\\$)+)",
617
+ "name": "meta.object.member.dw"
618
+ },
619
+ {
620
+ "include": "#strings"
621
+ },
622
+ {
623
+ "begin": "(\\[(@|\\^)?)",
624
+ "end": "(\\])",
625
+ "patterns": [
626
+ {
627
+ "include": "#expressions"
628
+ },
629
+ {
630
+ "match": "([\\)])",
631
+ "name": "invalid"
632
+ }
633
+ ]
634
+ },
635
+ {
636
+ "include": "#selectors"
637
+ }
638
+ ]
639
+ },
640
+ "object-key": {
641
+ "patterns": [
642
+ {
643
+ "name": "meta.object.member.dw meta.object-literal.namespace.dw",
644
+ "match": "\\b([[:alpha:]][_[:alnum:]]+#)",
645
+ "captures": {
646
+ "0": {
647
+ "name": "variable.language.dw"
648
+ }
649
+ }
650
+ },
651
+ {
652
+ "name": "meta.object.member.dw meta.object-literal.key.dw",
653
+ "begin": "(?=[\\'\\\"\\`])",
654
+ "end": "(?=@\\(|:)",
655
+ "patterns": [
656
+ {
657
+ "include": "#strings"
658
+ }
659
+ ]
660
+ },
661
+ {
662
+ "name": "meta.object.member.dw",
663
+ "end": "(?=,|\\}|\\))",
664
+ "match": "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=:|@\\()",
665
+ "captures": {
666
+ "1": {
667
+ "name": "meta.object-literal.key.dw"
668
+ }
669
+ }
670
+ }
671
+ ]
672
+ },
673
+ "object-member": {
674
+ "patterns": [
675
+ {
676
+ "include": "#comments"
677
+ },
678
+ {
679
+ "include": "#paren-expression"
680
+ },
681
+ {
682
+ "begin": "\\s+if\\b",
683
+ "beginCaptures": {
684
+ "0": {
685
+ "name": "keyword.control.dw"
686
+ }
687
+ },
688
+ "end": "(?=,|})",
689
+ "patterns": [
690
+ {
691
+ "include": "#expressions"
692
+ }
693
+ ]
694
+ },
695
+ {
696
+ "include": "#object-key"
697
+ },
698
+ {
699
+ "include": "#attr-literal"
700
+ },
701
+ {
702
+ "include": "#object-member-body"
703
+ },
704
+ {
705
+ "include": "#punctuation-comma"
706
+ }
707
+ ]
708
+ },
709
+ "object-member-body": {
710
+ "name": "meta.object.member.dw",
711
+ "begin": ":",
712
+ "beginCaptures": {
713
+ "0": {
714
+ "name": "meta.object-literal.key.dw punctuation.separator.key-value.dw"
715
+ }
716
+ },
717
+ "end": "(?=,|\\}|\\))",
718
+ "patterns": [
719
+ {
720
+ "include": "#expressions"
721
+ }
722
+ ]
723
+ },
724
+ "output-directive": {
725
+ "name": "meta.directive.ns.dw",
726
+ "begin": "(?<!\\.|\\$)\\b(output)\\s+([^\\n{\\s]*)(?!\\$|\\.)",
727
+ "beginCaptures": {
728
+ "1": {
729
+ "name": "storage.type.dw"
730
+ },
731
+ "2": {
732
+ "name": "string.other.dw"
733
+ }
734
+ },
735
+ "end": "(?=\\n)"
736
+ },
737
+ "parameters": {
738
+ "patterns": [
739
+ {
740
+ "begin": "(:)",
741
+ "beginCaptures": {
742
+ "1": {
743
+ "name": "keyword.operator.declaration.dw"
744
+ }
745
+ },
746
+ "end": "(?=,|\\)|=)",
747
+ "patterns": [
748
+ {
749
+ "include": "#types"
750
+ }
751
+ ]
752
+ },
753
+ {
754
+ "begin": "(=)",
755
+ "beginCaptures": {
756
+ "1": {
757
+ "name": "keyword.operator.declaration.dw"
758
+ }
759
+ },
760
+ "end": "(?=,|\\))",
761
+ "patterns": [
762
+ {
763
+ "include": "#expressions"
764
+ }
765
+ ]
766
+ },
767
+ {
768
+ "name": "variable.parameter.dw",
769
+ "match": "\\w+"
770
+ }
771
+ ]
772
+ },
773
+ "paren-expression": {
774
+ "begin": "(\\()",
775
+ "beginCaptures": {
776
+ "1": {
777
+ "name": "punctuation.expression.begin.dw"
778
+ }
779
+ },
780
+ "end": "(\\))",
781
+ "endCaptures": {
782
+ "1": {
783
+ "name": "punctuation.expression.end.dw"
784
+ }
785
+ },
786
+ "patterns": [
787
+ {
788
+ "include": "#expressions"
789
+ }
790
+ ]
791
+ },
792
+ "punctuation-comma": {
793
+ "name": "punctuation.separator.comma.dw",
794
+ "match": ","
795
+ },
796
+ "strings": {
797
+ "patterns": [
798
+ {
799
+ "include": "#qstring-single"
800
+ },
801
+ {
802
+ "include": "#qstring-double"
803
+ },
804
+ {
805
+ "include": "#qstring-backtick"
806
+ },
807
+ {
808
+ "include": "#template"
809
+ }
810
+ ]
811
+ },
812
+ "qstring-backtick": {
813
+ "begin": "`",
814
+ "beginCaptures": {
815
+ "0": {
816
+ "name": "string.quoted.double.dw punctuation.definition.string.begin.dw"
817
+ }
818
+ },
819
+ "end": "`",
820
+ "endCaptures": {
821
+ "0": {
822
+ "name": "string.quoted.double.dw punctuation.definition.string.end.dw"
823
+ }
824
+ },
825
+ "patterns": [
826
+ {
827
+ "include": "#template-substitution-element"
828
+ },
829
+ {
830
+ "include": "#template-dollar"
831
+ },
832
+ {
833
+ "include": "#string-character-escape"
834
+ },
835
+ {
836
+ "match": "([^`])",
837
+ "name": "string.template.dw"
838
+ }
839
+ ]
840
+ },
841
+ "template": {
842
+ "begin": "([$[:alpha:]][_$[:alnum:]]*)\\s*(`)",
843
+ "beginCaptures": {
844
+ "1": {
845
+ "name": "support.function.dw"
846
+ },
847
+ "2": {
848
+ "name": "string.template.dw punctuation.definition.string.template.begin.dw"
849
+ }
850
+ },
851
+ "end": "`",
852
+ "endCaptures": {
853
+ "0": {
854
+ "name": "string.template.dw punctuation.definition.string.template.end.dw"
855
+ }
856
+ },
857
+ "patterns": [
858
+ {
859
+ "include": "#template-substitution-element"
860
+ },
861
+ {
862
+ "include": "#template-dollar"
863
+ },
864
+ {
865
+ "include": "#string-character-escape"
866
+ },
867
+ {
868
+ "match": "([^`])",
869
+ "name": "string.template.dw"
870
+ }
871
+ ]
872
+ },
873
+ "string-character-escape": {
874
+ "name": "constant.character.escape.dw",
875
+ "match": "\\\\(u\\h{4}|$|.)"
876
+ },
877
+ "qstring-double": {
878
+ "begin": "\"",
879
+ "beginCaptures": {
880
+ "0": {
881
+ "name": "string.quoted.double.dw punctuation.definition.string.begin.dw"
882
+ }
883
+ },
884
+ "end": "\"",
885
+ "endCaptures": {
886
+ "0": {
887
+ "name": "string.quoted.double.dw punctuation.definition.string.end.dw"
888
+ }
889
+ },
890
+ "patterns": [
891
+ {
892
+ "include": "#template-substitution-element"
893
+ },
894
+ {
895
+ "include": "#template-dollar"
896
+ },
897
+ {
898
+ "include": "#string-character-escape"
899
+ },
900
+ {
901
+ "match": "([^\"])",
902
+ "name": "string.quoted.double.dw"
903
+ }
904
+ ]
905
+ },
906
+ "qstring-single": {
907
+ "begin": "'",
908
+ "beginCaptures": {
909
+ "0": {
910
+ "name": "string.quoted.single.dw punctuation.definition.string.begin.dw"
911
+ }
912
+ },
913
+ "end": "(\\')|((?:[^\\\\\\n])$)",
914
+ "endCaptures": {
915
+ "1": {
916
+ "name": "string.quoted.single.dw punctuation.definition.string.end.dw"
917
+ },
918
+ "2": {
919
+ "name": "invalid.illegal.newline.dw"
920
+ }
921
+ },
922
+ "patterns": [
923
+ {
924
+ "include": "#template-substitution-element"
925
+ },
926
+ {
927
+ "include": "#template-dollar"
928
+ },
929
+ {
930
+ "include": "#string-character-escape"
931
+ },
932
+ {
933
+ "match": "([^'])",
934
+ "name": "string.quoted.single.dw"
935
+ }
936
+ ]
937
+ },
938
+ "template-dollar": {
939
+ "patterns": [
940
+ {
941
+ "match": "(\\$(\\$)+)",
942
+ "name": "variable.parameter.dw"
943
+ },
944
+ {
945
+ "match": "(\\$)(?![a-zA-Z(])",
946
+ "name": "variable.parameter.dw"
947
+ },
948
+ {
949
+ "match": "(\\$)([a-zA-Z][a-zA-Z0-9_]*)",
950
+ "captures": {
951
+ "1": {
952
+ "name": "keyword.other.dw"
953
+ },
954
+ "2": {
955
+ "name": "variable.other.dw"
956
+ }
957
+ },
958
+ "name": "variable.parameter.dw"
959
+ }
960
+ ]
961
+ },
962
+ "template-substitution-element": {
963
+ "name": "meta.template.expression.dw",
964
+ "begin": "\\$\\(",
965
+ "beginCaptures": {
966
+ "0": {
967
+ "name": "keyword.other.dw"
968
+ }
969
+ },
970
+ "end": "\\)",
971
+ "endCaptures": {
972
+ "0": {
973
+ "name": "keyword.other.dw"
974
+ }
975
+ },
976
+ "patterns": [
977
+ {
978
+ "include": "#expressions"
979
+ }
980
+ ]
981
+ },
982
+ "types": {
983
+ "patterns": [
984
+ {
985
+ "include": "#comments"
986
+ },
987
+ {
988
+ "name": "support.class.dw",
989
+ "match": "\\b(String|Boolean|Number|Range|Namespace|Uri|DateTime|LocalDateTime|Date|LocalTime|Time|TimeZone|Period|Binary|Null|Regex|Nothing|Any|Object|Key)\\b"
990
+ },
991
+ {
992
+ "begin": "\\b(Array|Type)\\s*<\\b",
993
+ "beginCaptures": {
994
+ "1": {
995
+ "name": "support.type.dw"
996
+ }
997
+ },
998
+ "end": ">",
999
+ "patterns": [
1000
+ {
1001
+ "match": ",",
1002
+ "name": "invalid"
1003
+ },
1004
+ {
1005
+ "include": "#types"
1006
+ }
1007
+ ]
1008
+ },
1009
+ {
1010
+ "name": "keyword.operator.declaration.dw",
1011
+ "match": "(&|\\|)"
1012
+ },
1013
+ {
1014
+ "name": "keyword.operator.declaration.dw",
1015
+ "match": "<:"
1016
+ },
1017
+ {
1018
+ "name": "support.class.dw",
1019
+ "match": "\\b([A-Z][a-zA-Z0-9_]*)"
1020
+ },
1021
+ {
1022
+ "begin": "<",
1023
+ "end": ">",
1024
+ "patterns": [
1025
+ {
1026
+ "include": "#types"
1027
+ },
1028
+ {
1029
+ "include": "#punctuation-comma"
1030
+ },
1031
+ {
1032
+ "include": "#comments"
1033
+ }
1034
+ ]
1035
+ },
1036
+ {
1037
+ "begin": "\\(",
1038
+ "beginCaptures": {
1039
+ "1": {
1040
+ "name": "keyword.operator.tuple.dw"
1041
+ }
1042
+ },
1043
+ "end": "(\\)\\s*\\-\\>)",
1044
+ "patterns": [
1045
+ {
1046
+ "include": "#types"
1047
+ },
1048
+ {
1049
+ "include": "#parameters"
1050
+ }
1051
+ ]
1052
+ },
1053
+ {
1054
+ "begin": "\\{\\-\\|",
1055
+ "end": "\\|\\-\\}",
1056
+ "patterns": [
1057
+ {
1058
+ "include": "#punctuation-comma"
1059
+ },
1060
+ {
1061
+ "include": "#object-member-type"
1062
+ }
1063
+ ]
1064
+ },
1065
+ {
1066
+ "begin": "\\{\\|",
1067
+ "end": "\\|\\}",
1068
+ "patterns": [
1069
+ {
1070
+ "include": "#punctuation-comma"
1071
+ },
1072
+ {
1073
+ "include": "#object-member-type"
1074
+ }
1075
+ ]
1076
+ },
1077
+ {
1078
+ "begin": "\\{\\-",
1079
+ "end": "\\-\\}",
1080
+ "patterns": [
1081
+ {
1082
+ "include": "#punctuation-comma"
1083
+ },
1084
+ {
1085
+ "include": "#object-member-type"
1086
+ }
1087
+ ]
1088
+ },
1089
+ {
1090
+ "begin": "\\{",
1091
+ "end": "\\}",
1092
+ "patterns": [
1093
+ {
1094
+ "include": "#punctuation-comma"
1095
+ },
1096
+ {
1097
+ "include": "#object-member-type"
1098
+ }
1099
+ ]
1100
+ },
1101
+ {
1102
+ "begin": "\\(",
1103
+ "end": "\\)",
1104
+ "patterns": [
1105
+ {
1106
+ "include": "#types"
1107
+ }
1108
+ ]
1109
+ },
1110
+ {
1111
+ "match": "\\b(var|fun|ns)\\b"
1112
+ },
1113
+ {
1114
+ "name": "invalid",
1115
+ "match": "\\b(input|output|var|ns|import|try|catch|throw|do|for|yield|enum|private|async)\\b"
1116
+ },
1117
+ {
1118
+ "name": "invalid",
1119
+ "match": "\\b(if|else|while|for|do|using|unless|default|match)\\b"
1120
+ },
1121
+ {
1122
+ "name": "invalid",
1123
+ "match": "(~=|==|!=|===|!==|<=|>=|<|>|\\$+)"
1124
+ }
1125
+ ]
1126
+ },
1127
+ "object-member-type": {
1128
+ "patterns": [
1129
+ {
1130
+ "include": "#comments"
1131
+ },
1132
+ {
1133
+ "match": "_",
1134
+ "name": "variable.language.dw"
1135
+ },
1136
+ {
1137
+ "match": "([a-zA-Z0-9]+#)",
1138
+ "name": "variable.language.dw"
1139
+ },
1140
+ {
1141
+ "match": "\\(\\s*([a-zA-Z][a-zA-Z0-9]*)\\s*\\)",
1142
+ "name": "entity.name.type.dw"
1143
+ },
1144
+ {
1145
+ "match": "([a-zA-Z][a-zA-Z0-9]*)",
1146
+ "name": "meta.object.member.dw"
1147
+ },
1148
+ {
1149
+ "include": "#strings"
1150
+ },
1151
+ {
1152
+ "match": "\\?",
1153
+ "name": "keyword.operator.optional.dw"
1154
+ },
1155
+ {
1156
+ "match": "\\*",
1157
+ "name": "keyword.operator.optional.dw"
1158
+ },
1159
+ {
1160
+ "begin": "(\\@\\()",
1161
+ "beginCaptures": {
1162
+ "1": {
1163
+ "name": "keyword.operator.attributes.dw"
1164
+ }
1165
+ },
1166
+ "end": "(\\))",
1167
+ "endCaptures": {
1168
+ "1": {
1169
+ "name": "keyword.operator.attributes.dw"
1170
+ }
1171
+ },
1172
+ "patterns": [
1173
+ {
1174
+ "include": "#punctuation-comma"
1175
+ },
1176
+ {
1177
+ "include": "#object-member-type"
1178
+ }
1179
+ ]
1180
+ },
1181
+ {
1182
+ "begin": "(:)",
1183
+ "beginCaptures": {
1184
+ "1": {
1185
+ "name": "keyword.operator.declaration.dw"
1186
+ }
1187
+ },
1188
+ "end": "(?=,|}|\\)|\\|}|\\-}|\\|\\-})",
1189
+ "patterns": [
1190
+ {
1191
+ "include": "#types"
1192
+ }
1193
+ ]
1194
+ },
1195
+ {
1196
+ "match": "([^\\s])",
1197
+ "name": "invalid"
1198
+ }
1199
+ ]
1200
+ },
1201
+ "type-directive": {
1202
+ "name": "meta.directive.type.dw",
1203
+ "begin": "(\\s*(type)\\s+([a-zA-Z][a-zA-Z0-9]*))",
1204
+ "end": "(?=(fun|input|output|type|var|ns|import|%dw|private|---)\\s)",
1205
+ "beginCaptures": {
1206
+ "2": {
1207
+ "name": "storage.type.dw"
1208
+ },
1209
+ "3": {
1210
+ "name": "entity.name.type.dw"
1211
+ }
1212
+ },
1213
+ "patterns": [
1214
+ {
1215
+ "begin": "<",
1216
+ "end": ">",
1217
+ "patterns": [
1218
+ {
1219
+ "include": "#generics"
1220
+ }
1221
+ ]
1222
+ },
1223
+ {
1224
+ "name": "keyword.other.dw",
1225
+ "match": "\\="
1226
+ },
1227
+ {
1228
+ "include": "#types"
1229
+ }
1230
+ ]
1231
+ },
1232
+ "import-directive": {
1233
+ "name": "meta.directive.import.dw",
1234
+ "begin": "(\\s*(import)\\s+)",
1235
+ "end": "(?=(fun|input|output|type|var|ns|import|%dw|private|---)\\s|$)",
1236
+ "beginCaptures": {
1237
+ "2": {
1238
+ "name": "storage.type.dw"
1239
+ }
1240
+ },
1241
+ "patterns": [
1242
+ {
1243
+ "include": "#comments"
1244
+ },
1245
+ {
1246
+ "match": "(,)"
1247
+ },
1248
+ {
1249
+ "match": "(\\*)"
1250
+ },
1251
+ {
1252
+ "match": "\\b(from)\\s+",
1253
+ "captures": {
1254
+ "1": {
1255
+ "name": "storage.type.dw"
1256
+ }
1257
+ }
1258
+ },
1259
+ {
1260
+ "match": "(?:[a-zA-Z][a-zA-Z0-9]*(?:::[a-zA-Z][a-zA-Z0-9]*)*)\n",
1261
+ "name": "entity.name.other.dw"
1262
+ },
1263
+ {
1264
+ "match": "\\s+(as)\\s+([a-zA-Z][a-zA-Z0-9]*)",
1265
+ "captures": {
1266
+ "1": {
1267
+ "name": "keyword.other.dw"
1268
+ },
1269
+ "2": {
1270
+ "name": "entity.name.other.dw"
1271
+ }
1272
+ }
1273
+ }
1274
+ ]
1275
+ },
1276
+ "var-directive": {
1277
+ "name": "meta.directive.var.dw",
1278
+ "begin": "(\\s*(var)\\s+([a-zA-Z][a-zA-Z0-9]*))",
1279
+ "end": "(=)",
1280
+ "beginCaptures": {
1281
+ "2": {
1282
+ "name": "storage.type.dw"
1283
+ },
1284
+ "3": {
1285
+ "name": "entity.name.variable.dw"
1286
+ }
1287
+ },
1288
+ "endCaptures": {
1289
+ "0": {
1290
+ "name": "keyword.operator.assignment.dw"
1291
+ }
1292
+ },
1293
+ "patterns": [
1294
+ {
1295
+ "begin": "<",
1296
+ "end": ">",
1297
+ "patterns": [
1298
+ {
1299
+ "include": "#generics"
1300
+ }
1301
+ ]
1302
+ },
1303
+ {
1304
+ "begin": "(:)",
1305
+ "beginCaptures": {
1306
+ "1": {
1307
+ "name": "keyword.operator.declaration.dw"
1308
+ }
1309
+ },
1310
+ "end": "(?==|$)",
1311
+ "patterns": [
1312
+ {
1313
+ "include": "#comments"
1314
+ },
1315
+ {
1316
+ "include": "#types"
1317
+ }
1318
+ ]
1319
+ }
1320
+ ]
1321
+ },
1322
+ "fun-directive": {
1323
+ "name": "meta.directive.fun.dw",
1324
+ "begin": "(\\s*(fun)\\s+([a-zA-Z][a-zA-Z0-9]*))",
1325
+ "end": "(=)",
1326
+ "beginCaptures": {
1327
+ "2": {
1328
+ "name": "storage.type.dw"
1329
+ },
1330
+ "3": {
1331
+ "name": "entity.name.function.dw"
1332
+ }
1333
+ },
1334
+ "endCaptures": {
1335
+ "0": {
1336
+ "name": "keyword.operator.assignment.dw"
1337
+ }
1338
+ },
1339
+ "patterns": [
1340
+ {
1341
+ "begin": "<",
1342
+ "end": ">",
1343
+ "patterns": [
1344
+ {
1345
+ "include": "#generics"
1346
+ }
1347
+ ]
1348
+ },
1349
+ {
1350
+ "begin": "\\(",
1351
+ "end": "\\)",
1352
+ "patterns": [
1353
+ {
1354
+ "include": "#parameters"
1355
+ }
1356
+ ]
1357
+ },
1358
+ {
1359
+ "begin": "(:)",
1360
+ "beginCaptures": {
1361
+ "1": {
1362
+ "name": "keyword.operator.declaration.dw"
1363
+ }
1364
+ },
1365
+ "end": "(?==)",
1366
+ "patterns": [
1367
+ {
1368
+ "include": "#types"
1369
+ }
1370
+ ]
1371
+ }
1372
+ ]
1373
+ },
1374
+ "array-literal": {
1375
+ "name": "meta.array.literal.dw",
1376
+ "begin": "(?<!\\w|}|])(\\[)",
1377
+ "beginCaptures": {
1378
+ "0": {
1379
+ "name": "meta.brace.square.dw"
1380
+ }
1381
+ },
1382
+ "end": "\\]",
1383
+ "endCaptures": {
1384
+ "0": {
1385
+ "name": "meta.brace.square.dw"
1386
+ }
1387
+ },
1388
+ "patterns": [
1389
+ {
1390
+ "include": "#expressions"
1391
+ },
1392
+ {
1393
+ "include": "#punctuation-comma"
1394
+ }
1395
+ ]
1396
+ },
1397
+ "regex": {
1398
+ "patterns": [
1399
+ {
1400
+ "name": "string.regexp.dw",
1401
+ "begin": "(?<=[=(:,\\[?+!]|replace|match|scan|matches|contains|---|case|->|and|or|\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\])+\\/(?![\\/*])(?!\\s*[a-zA-Z0-9_$]))",
1402
+ "beginCaptures": {
1403
+ "1": {
1404
+ "name": "punctuation.definition.string.begin.dw"
1405
+ }
1406
+ },
1407
+ "end": "(/)",
1408
+ "endCaptures": {
1409
+ "1": {
1410
+ "name": "punctuation.definition.string.end.dw"
1411
+ }
1412
+ },
1413
+ "patterns": [
1414
+ {
1415
+ "include": "#regexp"
1416
+ }
1417
+ ]
1418
+ },
1419
+ {
1420
+ "name": "string.regexp.dw",
1421
+ "begin": "(?<![_$[:alnum:])])\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\])+\\/(?![\\/*])(?!\\s*[a-zA-Z0-9_$]))",
1422
+ "beginCaptures": {
1423
+ "0": {
1424
+ "name": "punctuation.definition.string.begin.dw"
1425
+ }
1426
+ },
1427
+ "end": "(/)",
1428
+ "endCaptures": {
1429
+ "1": {
1430
+ "name": "punctuation.definition.string.end.dw"
1431
+ }
1432
+ },
1433
+ "patterns": [
1434
+ {
1435
+ "include": "#regexp"
1436
+ }
1437
+ ]
1438
+ }
1439
+ ]
1440
+ },
1441
+ "regexp": {
1442
+ "patterns": [
1443
+ {
1444
+ "name": "keyword.control.anchor.regexp",
1445
+ "match": "\\\\[bB]|\\^|\\$"
1446
+ },
1447
+ {
1448
+ "name": "keyword.other.back-reference.regexp",
1449
+ "match": "\\\\[1-9]\\d*"
1450
+ },
1451
+ {
1452
+ "name": "keyword.operator.quantifier.regexp",
1453
+ "match": "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??"
1454
+ },
1455
+ {
1456
+ "name": "keyword.operator.or.regexp",
1457
+ "match": "\\|"
1458
+ },
1459
+ {
1460
+ "name": "meta.group.assertion.regexp",
1461
+ "begin": "(\\()((\\?=)|(\\?!))",
1462
+ "beginCaptures": {
1463
+ "1": {
1464
+ "name": "punctuation.definition.group.regexp"
1465
+ },
1466
+ "2": {
1467
+ "name": "punctuation.definition.group.assertion.regexp"
1468
+ },
1469
+ "3": {
1470
+ "name": "meta.assertion.look-ahead.regexp"
1471
+ },
1472
+ "4": {
1473
+ "name": "meta.assertion.negative-look-ahead.regexp"
1474
+ }
1475
+ },
1476
+ "end": "(\\))",
1477
+ "endCaptures": {
1478
+ "1": {
1479
+ "name": "punctuation.definition.group.regexp"
1480
+ }
1481
+ },
1482
+ "patterns": [
1483
+ {
1484
+ "include": "#regexp"
1485
+ }
1486
+ ]
1487
+ },
1488
+ {
1489
+ "name": "meta.group.regexp",
1490
+ "begin": "\\((\\?:)?",
1491
+ "beginCaptures": {
1492
+ "0": {
1493
+ "name": "punctuation.definition.group.regexp"
1494
+ },
1495
+ "1": {
1496
+ "name": "punctuation.definition.group.capture.regexp"
1497
+ }
1498
+ },
1499
+ "end": "\\)",
1500
+ "endCaptures": {
1501
+ "0": {
1502
+ "name": "punctuation.definition.group.regexp"
1503
+ }
1504
+ },
1505
+ "patterns": [
1506
+ {
1507
+ "include": "#regexp"
1508
+ }
1509
+ ]
1510
+ },
1511
+ {
1512
+ "name": "constant.other.character-class.set.regexp",
1513
+ "begin": "(\\[)(\\^)?",
1514
+ "beginCaptures": {
1515
+ "1": {
1516
+ "name": "punctuation.definition.character-class.regexp"
1517
+ },
1518
+ "2": {
1519
+ "name": "keyword.operator.negation.regexp"
1520
+ }
1521
+ },
1522
+ "end": "(\\])",
1523
+ "endCaptures": {
1524
+ "1": {
1525
+ "name": "punctuation.definition.character-class.regexp"
1526
+ }
1527
+ },
1528
+ "patterns": [
1529
+ {
1530
+ "name": "constant.other.character-class.range.regexp",
1531
+ "match": "(?:.|(\\\\(?:[0-7]{3}|x\\h\\h|u\\h\\h\\h\\h))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x\\h\\h|u\\h\\h\\h\\h))|(\\\\c[A-Z])|(\\\\.))",
1532
+ "captures": {
1533
+ "1": {
1534
+ "name": "constant.character.numeric.regexp"
1535
+ },
1536
+ "2": {
1537
+ "name": "constant.character.control.regexp"
1538
+ },
1539
+ "3": {
1540
+ "name": "constant.character.escape.backslash.regexp"
1541
+ },
1542
+ "4": {
1543
+ "name": "constant.character.numeric.regexp"
1544
+ },
1545
+ "5": {
1546
+ "name": "constant.character.control.regexp"
1547
+ },
1548
+ "6": {
1549
+ "name": "constant.character.escape.backslash.regexp"
1550
+ }
1551
+ }
1552
+ },
1553
+ {
1554
+ "include": "#regex-character-class"
1555
+ }
1556
+ ]
1557
+ },
1558
+ {
1559
+ "include": "#regex-character-class"
1560
+ }
1561
+ ]
1562
+ },
1563
+ "regex-character-class": {
1564
+ "patterns": [
1565
+ {
1566
+ "name": "constant.other.character-class.regexp",
1567
+ "match": "\\\\[wWsSdDtrnvf]|\\."
1568
+ },
1569
+ {
1570
+ "name": "constant.character.numeric.regexp",
1571
+ "match": "\\\\([0-7]{3}|x\\h\\h|u\\h\\h\\h\\h)"
1572
+ },
1573
+ {
1574
+ "name": "constant.character.control.regexp",
1575
+ "match": "\\\\c[A-Z]"
1576
+ },
1577
+ {
1578
+ "name": "constant.character.escape.backslash.regexp",
1579
+ "match": "\\\\."
1580
+ }
1581
+ ]
1582
+ }
1583
+ }
1584
+ }