@codingame/monaco-vscode-coffeescript-default-extension 1.81.8-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,16 @@
1
+ {
2
+ "Region Start": {
3
+ "prefix": "#region",
4
+ "body": [
5
+ "#region"
6
+ ],
7
+ "description": "Folding Region Start"
8
+ },
9
+ "Region End": {
10
+ "prefix": "#endregion",
11
+ "body": [
12
+ "#endregion"
13
+ ],
14
+ "description": "Folding Region End"
15
+ }
16
+ }
@@ -0,0 +1,1316 @@
1
+ {
2
+ "information_for_contributors": [
3
+ "This file has been converted from https://github.com/atom/language-coffee-script/blob/master/grammars/coffeescript.cson",
4
+ "If you want to provide a fix or improvement, please create a pull request against the original repository.",
5
+ "Once accepted there, we are happy to receive an update request."
6
+ ],
7
+ "version": "https://github.com/atom/language-coffee-script/commit/0f6db9143663e18b1ad00667820f46747dba495e",
8
+ "name": "CoffeeScript",
9
+ "scopeName": "source.coffee",
10
+ "patterns": [
11
+ {
12
+ "include": "#jsx"
13
+ },
14
+ {
15
+ "match": "(new)\\s+(?:(?:(class)\\s+(\\w+(?:\\.\\w*)*)?)|(\\w+(?:\\.\\w*)*))",
16
+ "name": "meta.class.instance.constructor.coffee",
17
+ "captures": {
18
+ "1": {
19
+ "name": "keyword.operator.new.coffee"
20
+ },
21
+ "2": {
22
+ "name": "storage.type.class.coffee"
23
+ },
24
+ "3": {
25
+ "name": "entity.name.type.instance.coffee"
26
+ },
27
+ "4": {
28
+ "name": "entity.name.type.instance.coffee"
29
+ }
30
+ }
31
+ },
32
+ {
33
+ "begin": "'''",
34
+ "beginCaptures": {
35
+ "0": {
36
+ "name": "punctuation.definition.string.begin.coffee"
37
+ }
38
+ },
39
+ "end": "'''",
40
+ "endCaptures": {
41
+ "0": {
42
+ "name": "punctuation.definition.string.end.coffee"
43
+ }
44
+ },
45
+ "name": "string.quoted.single.heredoc.coffee",
46
+ "patterns": [
47
+ {
48
+ "captures": {
49
+ "1": {
50
+ "name": "punctuation.definition.escape.backslash.coffee"
51
+ }
52
+ },
53
+ "match": "(\\\\).",
54
+ "name": "constant.character.escape.backslash.coffee"
55
+ }
56
+ ]
57
+ },
58
+ {
59
+ "begin": "\"\"\"",
60
+ "beginCaptures": {
61
+ "0": {
62
+ "name": "punctuation.definition.string.begin.coffee"
63
+ }
64
+ },
65
+ "end": "\"\"\"",
66
+ "endCaptures": {
67
+ "0": {
68
+ "name": "punctuation.definition.string.end.coffee"
69
+ }
70
+ },
71
+ "name": "string.quoted.double.heredoc.coffee",
72
+ "patterns": [
73
+ {
74
+ "captures": {
75
+ "1": {
76
+ "name": "punctuation.definition.escape.backslash.coffee"
77
+ }
78
+ },
79
+ "match": "(\\\\).",
80
+ "name": "constant.character.escape.backslash.coffee"
81
+ },
82
+ {
83
+ "include": "#interpolated_coffee"
84
+ }
85
+ ]
86
+ },
87
+ {
88
+ "match": "(`)(.*)(`)",
89
+ "name": "string.quoted.script.coffee",
90
+ "captures": {
91
+ "1": {
92
+ "name": "punctuation.definition.string.begin.coffee"
93
+ },
94
+ "2": {
95
+ "name": "source.js.embedded.coffee",
96
+ "patterns": [
97
+ {
98
+ "include": "source.js"
99
+ }
100
+ ]
101
+ },
102
+ "3": {
103
+ "name": "punctuation.definition.string.end.coffee"
104
+ }
105
+ }
106
+ },
107
+ {
108
+ "begin": "(?<!#)###(?!#)",
109
+ "beginCaptures": {
110
+ "0": {
111
+ "name": "punctuation.definition.comment.coffee"
112
+ }
113
+ },
114
+ "end": "###",
115
+ "endCaptures": {
116
+ "0": {
117
+ "name": "punctuation.definition.comment.coffee"
118
+ }
119
+ },
120
+ "name": "comment.block.coffee",
121
+ "patterns": [
122
+ {
123
+ "match": "(?<=^|\\s)@\\w*(?=\\s)",
124
+ "name": "storage.type.annotation.coffee"
125
+ }
126
+ ]
127
+ },
128
+ {
129
+ "begin": "#",
130
+ "beginCaptures": {
131
+ "0": {
132
+ "name": "punctuation.definition.comment.coffee"
133
+ }
134
+ },
135
+ "end": "$",
136
+ "name": "comment.line.number-sign.coffee"
137
+ },
138
+ {
139
+ "begin": "///",
140
+ "end": "(///)[gimuy]*",
141
+ "name": "string.regexp.multiline.coffee",
142
+ "beginCaptures": {
143
+ "0": {
144
+ "name": "punctuation.definition.string.begin.coffee"
145
+ }
146
+ },
147
+ "endCaptures": {
148
+ "1": {
149
+ "name": "punctuation.definition.string.end.coffee"
150
+ }
151
+ },
152
+ "patterns": [
153
+ {
154
+ "include": "#heregexp"
155
+ }
156
+ ]
157
+ },
158
+ {
159
+ "begin": "(?<![\\w$])(/)(?=(?![/*+?])(.+)(/)[gimuy]*(?!\\s*[\\w$/(]))",
160
+ "beginCaptures": {
161
+ "1": {
162
+ "name": "punctuation.definition.string.begin.coffee"
163
+ }
164
+ },
165
+ "end": "(/)[gimuy]*(?!\\s*[\\w$/(])",
166
+ "endCaptures": {
167
+ "1": {
168
+ "name": "punctuation.definition.string.end.coffee"
169
+ }
170
+ },
171
+ "name": "string.regexp.coffee",
172
+ "patterns": [
173
+ {
174
+ "include": "source.js.regexp"
175
+ }
176
+ ]
177
+ },
178
+ {
179
+ "match": "\\b(?<![\\.\\$])(break|by|catch|continue|else|finally|for|in|of|if|return|switch|then|throw|try|unless|when|while|until|loop|do|export|import|default|from|as|yield|async|await|(?<=for)\\s+own)(?!\\s*:)\\b",
180
+ "name": "keyword.control.coffee"
181
+ },
182
+ {
183
+ "match": "\\b(?<![\\.\\$])(delete|instanceof|new|typeof)(?!\\s*:)\\b",
184
+ "name": "keyword.operator.$1.coffee"
185
+ },
186
+ {
187
+ "match": "\\b(?<![\\.\\$])(case|function|var|void|with|const|let|enum|native|__hasProp|__extends|__slice|__bind|__indexOf|implements|interface|package|private|protected|public|static)(?!\\s*:)\\b",
188
+ "name": "keyword.reserved.coffee"
189
+ },
190
+ {
191
+ "begin": "(?x)\n(?<=\\s|^)((@)?[a-zA-Z_$][\\w$]*)\n\\s*([:=])\\s*\n(?=(\\([^\\(\\)]*\\)\\s*)?[=-]>)",
192
+ "beginCaptures": {
193
+ "1": {
194
+ "name": "entity.name.function.coffee"
195
+ },
196
+ "2": {
197
+ "name": "variable.other.readwrite.instance.coffee"
198
+ },
199
+ "3": {
200
+ "name": "keyword.operator.assignment.coffee"
201
+ }
202
+ },
203
+ "end": "[=-]>",
204
+ "endCaptures": {
205
+ "0": {
206
+ "name": "storage.type.function.coffee"
207
+ }
208
+ },
209
+ "name": "meta.function.coffee",
210
+ "patterns": [
211
+ {
212
+ "include": "#function_params"
213
+ }
214
+ ]
215
+ },
216
+ {
217
+ "begin": "(?x)\n(?<=\\s|^)(?:((')([^']*?)('))|((\")([^\"]*?)(\")))\n\\s*([:=])\\s*\n(?=(\\([^\\(\\)]*\\)\\s*)?[=-]>)",
218
+ "beginCaptures": {
219
+ "1": {
220
+ "name": "string.quoted.single.coffee"
221
+ },
222
+ "2": {
223
+ "name": "punctuation.definition.string.begin.coffee"
224
+ },
225
+ "3": {
226
+ "name": "entity.name.function.coffee"
227
+ },
228
+ "4": {
229
+ "name": "punctuation.definition.string.end.coffee"
230
+ },
231
+ "5": {
232
+ "name": "string.quoted.double.coffee"
233
+ },
234
+ "6": {
235
+ "name": "punctuation.definition.string.begin.coffee"
236
+ },
237
+ "7": {
238
+ "name": "entity.name.function.coffee"
239
+ },
240
+ "8": {
241
+ "name": "punctuation.definition.string.end.coffee"
242
+ },
243
+ "9": {
244
+ "name": "keyword.operator.assignment.coffee"
245
+ }
246
+ },
247
+ "end": "[=-]>",
248
+ "endCaptures": {
249
+ "0": {
250
+ "name": "storage.type.function.coffee"
251
+ }
252
+ },
253
+ "name": "meta.function.coffee",
254
+ "patterns": [
255
+ {
256
+ "include": "#function_params"
257
+ }
258
+ ]
259
+ },
260
+ {
261
+ "begin": "(?=(\\([^\\(\\)]*\\)\\s*)?[=-]>)",
262
+ "end": "[=-]>",
263
+ "endCaptures": {
264
+ "0": {
265
+ "name": "storage.type.function.coffee"
266
+ }
267
+ },
268
+ "name": "meta.function.inline.coffee",
269
+ "patterns": [
270
+ {
271
+ "include": "#function_params"
272
+ }
273
+ ]
274
+ },
275
+ {
276
+ "begin": "(?<=\\s|^)({)(?=[^'\"#]+?}[\\s\\]}]*=)",
277
+ "beginCaptures": {
278
+ "1": {
279
+ "name": "punctuation.definition.destructuring.begin.bracket.curly.coffee"
280
+ }
281
+ },
282
+ "end": "}",
283
+ "endCaptures": {
284
+ "0": {
285
+ "name": "punctuation.definition.destructuring.end.bracket.curly.coffee"
286
+ }
287
+ },
288
+ "name": "meta.variable.assignment.destructured.object.coffee",
289
+ "patterns": [
290
+ {
291
+ "include": "$self"
292
+ },
293
+ {
294
+ "match": "[a-zA-Z$_]\\w*",
295
+ "name": "variable.assignment.coffee"
296
+ }
297
+ ]
298
+ },
299
+ {
300
+ "begin": "(?<=\\s|^)(\\[)(?=[^'\"#]+?\\][\\s\\]}]*=)",
301
+ "beginCaptures": {
302
+ "1": {
303
+ "name": "punctuation.definition.destructuring.begin.bracket.square.coffee"
304
+ }
305
+ },
306
+ "end": "\\]",
307
+ "endCaptures": {
308
+ "0": {
309
+ "name": "punctuation.definition.destructuring.end.bracket.square.coffee"
310
+ }
311
+ },
312
+ "name": "meta.variable.assignment.destructured.array.coffee",
313
+ "patterns": [
314
+ {
315
+ "include": "$self"
316
+ },
317
+ {
318
+ "match": "[a-zA-Z$_]\\w*",
319
+ "name": "variable.assignment.coffee"
320
+ }
321
+ ]
322
+ },
323
+ {
324
+ "match": "\\b(?<!\\.|::)(true|on|yes)(?!\\s*[:=][^=])\\b",
325
+ "name": "constant.language.boolean.true.coffee"
326
+ },
327
+ {
328
+ "match": "\\b(?<!\\.|::)(false|off|no)(?!\\s*[:=][^=])\\b",
329
+ "name": "constant.language.boolean.false.coffee"
330
+ },
331
+ {
332
+ "match": "\\b(?<!\\.|::)null(?!\\s*[:=][^=])\\b",
333
+ "name": "constant.language.null.coffee"
334
+ },
335
+ {
336
+ "match": "\\b(?<!\\.|::)extends(?!\\s*[:=])\\b",
337
+ "name": "variable.language.coffee"
338
+ },
339
+ {
340
+ "match": "(?<!\\.)\\b(?<!\\$)(super|this|arguments)(?!\\s*[:=][^=]|\\$)\\b",
341
+ "name": "variable.language.$1.coffee"
342
+ },
343
+ {
344
+ "captures": {
345
+ "1": {
346
+ "name": "storage.type.class.coffee"
347
+ },
348
+ "2": {
349
+ "name": "keyword.control.inheritance.coffee"
350
+ },
351
+ "3": {
352
+ "name": "entity.other.inherited-class.coffee"
353
+ }
354
+ },
355
+ "match": "(?<=\\s|^|\\[|\\()(class)\\s+(extends)\\s+(@?[a-zA-Z\\$\\._][\\w\\.]*)",
356
+ "name": "meta.class.coffee"
357
+ },
358
+ {
359
+ "captures": {
360
+ "1": {
361
+ "name": "storage.type.class.coffee"
362
+ },
363
+ "2": {
364
+ "name": "entity.name.type.class.coffee"
365
+ },
366
+ "3": {
367
+ "name": "keyword.control.inheritance.coffee"
368
+ },
369
+ "4": {
370
+ "name": "entity.other.inherited-class.coffee"
371
+ }
372
+ },
373
+ "match": "(?<=\\s|^|\\[|\\()(class\\b)\\s+(@?[a-zA-Z\\$_][\\w\\.]*)?(?:\\s+(extends)\\s+(@?[a-zA-Z\\$\\._][\\w\\.]*))?",
374
+ "name": "meta.class.coffee"
375
+ },
376
+ {
377
+ "match": "\\b(debugger|\\\\)\\b",
378
+ "name": "keyword.other.coffee"
379
+ },
380
+ {
381
+ "match": "\\b(Array|ArrayBuffer|Blob|Boolean|Date|document|Function|Int(8|16|32|64)Array|Math|Map|Number|Object|Proxy|RegExp|Set|String|WeakMap|window|Uint(8|16|32|64)Array|XMLHttpRequest)\\b",
382
+ "name": "support.class.coffee"
383
+ },
384
+ {
385
+ "match": "\\b(console)\\b",
386
+ "name": "entity.name.type.object.coffee"
387
+ },
388
+ {
389
+ "match": "((?<=console\\.)(debug|warn|info|log|error|time|timeEnd|assert))\\b",
390
+ "name": "support.function.console.coffee"
391
+ },
392
+ {
393
+ "match": "((?<=\\.)(apply|call|concat|every|filter|forEach|from|hasOwnProperty|indexOf|isPrototypeOf|join|lastIndexOf|map|of|pop|propertyIsEnumerable|push|reduce(Right)?|reverse|shift|slice|some|sort|splice|to(Locale)?String|unshift|valueOf))\\b",
394
+ "name": "support.function.method.array.coffee"
395
+ },
396
+ {
397
+ "match": "((?<=Array\\.)(isArray))\\b",
398
+ "name": "support.function.static.array.coffee"
399
+ },
400
+ {
401
+ "match": "((?<=Object\\.)(create|definePropert(ies|y)|freeze|getOwnProperty(Descriptors?|Names)|getProperty(Descriptor|Names)|getPrototypeOf|is(Extensible|Frozen|Sealed)?|isnt|keys|preventExtensions|seal))\\b",
402
+ "name": "support.function.static.object.coffee"
403
+ },
404
+ {
405
+ "match": "((?<=Math\\.)(abs|acos|acosh|asin|asinh|atan|atan2|atanh|ceil|cos|cosh|exp|expm1|floor|hypot|log|log10|log1p|log2|max|min|pow|random|round|sign|sin|sinh|sqrt|tan|tanh|trunc))\\b",
406
+ "name": "support.function.static.math.coffee"
407
+ },
408
+ {
409
+ "match": "((?<=Number\\.)(is(Finite|Integer|NaN)|toInteger))\\b",
410
+ "name": "support.function.static.number.coffee"
411
+ },
412
+ {
413
+ "match": "(?<!\\.)\\b(module|exports|__filename|__dirname|global|process)(?!\\s*:)\\b",
414
+ "name": "support.variable.coffee"
415
+ },
416
+ {
417
+ "match": "\\b(Infinity|NaN|undefined)\\b",
418
+ "name": "constant.language.coffee"
419
+ },
420
+ {
421
+ "include": "#operators"
422
+ },
423
+ {
424
+ "include": "#method_calls"
425
+ },
426
+ {
427
+ "include": "#function_calls"
428
+ },
429
+ {
430
+ "include": "#numbers"
431
+ },
432
+ {
433
+ "include": "#objects"
434
+ },
435
+ {
436
+ "include": "#properties"
437
+ },
438
+ {
439
+ "match": "::",
440
+ "name": "keyword.operator.prototype.coffee"
441
+ },
442
+ {
443
+ "match": "(?<!\\$)\\b[0-9]+[\\w$]*",
444
+ "name": "invalid.illegal.identifier.coffee"
445
+ },
446
+ {
447
+ "match": ";",
448
+ "name": "punctuation.terminator.statement.coffee"
449
+ },
450
+ {
451
+ "match": ",",
452
+ "name": "punctuation.separator.delimiter.coffee"
453
+ },
454
+ {
455
+ "begin": "{",
456
+ "beginCaptures": {
457
+ "0": {
458
+ "name": "meta.brace.curly.coffee"
459
+ }
460
+ },
461
+ "end": "}",
462
+ "endCaptures": {
463
+ "0": {
464
+ "name": "meta.brace.curly.coffee"
465
+ }
466
+ },
467
+ "patterns": [
468
+ {
469
+ "include": "$self"
470
+ }
471
+ ]
472
+ },
473
+ {
474
+ "begin": "\\[",
475
+ "beginCaptures": {
476
+ "0": {
477
+ "name": "punctuation.definition.array.begin.bracket.square.coffee"
478
+ }
479
+ },
480
+ "end": "\\]",
481
+ "endCaptures": {
482
+ "0": {
483
+ "name": "punctuation.definition.array.end.bracket.square.coffee"
484
+ }
485
+ },
486
+ "patterns": [
487
+ {
488
+ "match": "(?<!\\.)\\.{3}",
489
+ "name": "keyword.operator.slice.exclusive.coffee"
490
+ },
491
+ {
492
+ "match": "(?<!\\.)\\.{2}",
493
+ "name": "keyword.operator.slice.inclusive.coffee"
494
+ },
495
+ {
496
+ "include": "$self"
497
+ }
498
+ ]
499
+ },
500
+ {
501
+ "begin": "\\(",
502
+ "beginCaptures": {
503
+ "0": {
504
+ "name": "meta.brace.round.coffee"
505
+ }
506
+ },
507
+ "end": "\\)",
508
+ "endCaptures": {
509
+ "0": {
510
+ "name": "meta.brace.round.coffee"
511
+ }
512
+ },
513
+ "patterns": [
514
+ {
515
+ "include": "$self"
516
+ }
517
+ ]
518
+ },
519
+ {
520
+ "include": "#instance_variable"
521
+ },
522
+ {
523
+ "include": "#single_quoted_string"
524
+ },
525
+ {
526
+ "include": "#double_quoted_string"
527
+ }
528
+ ],
529
+ "repository": {
530
+ "arguments": {
531
+ "patterns": [
532
+ {
533
+ "begin": "\\(",
534
+ "beginCaptures": {
535
+ "0": {
536
+ "name": "punctuation.definition.arguments.begin.bracket.round.coffee"
537
+ }
538
+ },
539
+ "end": "\\)",
540
+ "endCaptures": {
541
+ "0": {
542
+ "name": "punctuation.definition.arguments.end.bracket.round.coffee"
543
+ }
544
+ },
545
+ "name": "meta.arguments.coffee",
546
+ "patterns": [
547
+ {
548
+ "include": "$self"
549
+ }
550
+ ]
551
+ },
552
+ {
553
+ "begin": "(?=(@|@?[\\w$]+|[=-]>|\\-\\d|\\[|{|\"|'))",
554
+ "end": "(?=\\s*(?<![\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\w$]))|(?=\\s*(}|\\]|\\)|#|$))",
555
+ "name": "meta.arguments.coffee",
556
+ "patterns": [
557
+ {
558
+ "include": "$self"
559
+ }
560
+ ]
561
+ }
562
+ ]
563
+ },
564
+ "double_quoted_string": {
565
+ "patterns": [
566
+ {
567
+ "begin": "\"",
568
+ "beginCaptures": {
569
+ "0": {
570
+ "name": "punctuation.definition.string.begin.coffee"
571
+ }
572
+ },
573
+ "end": "\"",
574
+ "endCaptures": {
575
+ "0": {
576
+ "name": "punctuation.definition.string.end.coffee"
577
+ }
578
+ },
579
+ "name": "string.quoted.double.coffee",
580
+ "patterns": [
581
+ {
582
+ "captures": {
583
+ "1": {
584
+ "name": "punctuation.definition.escape.backslash.coffee"
585
+ }
586
+ },
587
+ "match": "(\\\\)(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)",
588
+ "name": "constant.character.escape.backslash.coffee"
589
+ },
590
+ {
591
+ "include": "#interpolated_coffee"
592
+ }
593
+ ]
594
+ }
595
+ ]
596
+ },
597
+ "function_calls": {
598
+ "patterns": [
599
+ {
600
+ "begin": "(@)?([\\w$]+)(?=\\()",
601
+ "beginCaptures": {
602
+ "1": {
603
+ "name": "variable.other.readwrite.instance.coffee"
604
+ },
605
+ "2": {
606
+ "patterns": [
607
+ {
608
+ "include": "#function_names"
609
+ }
610
+ ]
611
+ }
612
+ },
613
+ "end": "(?<=\\))",
614
+ "name": "meta.function-call.coffee",
615
+ "patterns": [
616
+ {
617
+ "include": "#arguments"
618
+ }
619
+ ]
620
+ },
621
+ {
622
+ "begin": "(?x)\n(@)?([\\w$]+)\n\\s*\n(?=\\s+(?!(?<![\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\w$]))(?=(@?[\\w$]+|[=-]>|\\-\\d|\\[|{|\"|')))",
623
+ "beginCaptures": {
624
+ "1": {
625
+ "name": "variable.other.readwrite.instance.coffee"
626
+ },
627
+ "2": {
628
+ "patterns": [
629
+ {
630
+ "include": "#function_names"
631
+ }
632
+ ]
633
+ }
634
+ },
635
+ "end": "(?=\\s*(?<![\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\w$]))|(?=\\s*(}|\\]|\\)|#|$))",
636
+ "name": "meta.function-call.coffee",
637
+ "patterns": [
638
+ {
639
+ "include": "#arguments"
640
+ }
641
+ ]
642
+ }
643
+ ]
644
+ },
645
+ "function_names": {
646
+ "patterns": [
647
+ {
648
+ "match": "(?x)\n\\b(isNaN|isFinite|eval|uneval|parseInt|parseFloat|decodeURI|\ndecodeURIComponent|encodeURI|encodeURIComponent|escape|unescape|\nrequire|set(Interval|Timeout)|clear(Interval|Timeout))\\b",
649
+ "name": "support.function.coffee"
650
+ },
651
+ {
652
+ "match": "[a-zA-Z_$][\\w$]*",
653
+ "name": "entity.name.function.coffee"
654
+ },
655
+ {
656
+ "match": "\\d[\\w$]*",
657
+ "name": "invalid.illegal.identifier.coffee"
658
+ }
659
+ ]
660
+ },
661
+ "function_params": {
662
+ "patterns": [
663
+ {
664
+ "begin": "\\(",
665
+ "beginCaptures": {
666
+ "0": {
667
+ "name": "punctuation.definition.parameters.begin.bracket.round.coffee"
668
+ }
669
+ },
670
+ "end": "\\)",
671
+ "endCaptures": {
672
+ "0": {
673
+ "name": "punctuation.definition.parameters.end.bracket.round.coffee"
674
+ }
675
+ },
676
+ "name": "meta.parameters.coffee",
677
+ "patterns": [
678
+ {
679
+ "match": "([a-zA-Z_$][\\w$]*)(\\.\\.\\.)?",
680
+ "captures": {
681
+ "1": {
682
+ "name": "variable.parameter.function.coffee"
683
+ },
684
+ "2": {
685
+ "name": "keyword.operator.splat.coffee"
686
+ }
687
+ }
688
+ },
689
+ {
690
+ "match": "(@(?:[a-zA-Z_$][\\w$]*)?)(\\.\\.\\.)?",
691
+ "captures": {
692
+ "1": {
693
+ "name": "variable.parameter.function.readwrite.instance.coffee"
694
+ },
695
+ "2": {
696
+ "name": "keyword.operator.splat.coffee"
697
+ }
698
+ }
699
+ },
700
+ {
701
+ "include": "$self"
702
+ }
703
+ ]
704
+ }
705
+ ]
706
+ },
707
+ "embedded_comment": {
708
+ "patterns": [
709
+ {
710
+ "captures": {
711
+ "1": {
712
+ "name": "punctuation.definition.comment.coffee"
713
+ }
714
+ },
715
+ "match": "(?<!\\\\)(#).*$\\n?",
716
+ "name": "comment.line.number-sign.coffee"
717
+ }
718
+ ]
719
+ },
720
+ "instance_variable": {
721
+ "patterns": [
722
+ {
723
+ "match": "(@)([a-zA-Z_\\$]\\w*)?",
724
+ "name": "variable.other.readwrite.instance.coffee"
725
+ }
726
+ ]
727
+ },
728
+ "interpolated_coffee": {
729
+ "patterns": [
730
+ {
731
+ "begin": "\\#\\{",
732
+ "captures": {
733
+ "0": {
734
+ "name": "punctuation.section.embedded.coffee"
735
+ }
736
+ },
737
+ "end": "\\}",
738
+ "name": "source.coffee.embedded.source",
739
+ "patterns": [
740
+ {
741
+ "include": "$self"
742
+ }
743
+ ]
744
+ }
745
+ ]
746
+ },
747
+ "method_calls": {
748
+ "patterns": [
749
+ {
750
+ "begin": "(?:(\\.)|(::))\\s*([\\w$]+)\\s*(?=\\()",
751
+ "beginCaptures": {
752
+ "1": {
753
+ "name": "punctuation.separator.method.period.coffee"
754
+ },
755
+ "2": {
756
+ "name": "keyword.operator.prototype.coffee"
757
+ },
758
+ "3": {
759
+ "patterns": [
760
+ {
761
+ "include": "#method_names"
762
+ }
763
+ ]
764
+ }
765
+ },
766
+ "end": "(?<=\\))",
767
+ "name": "meta.method-call.coffee",
768
+ "patterns": [
769
+ {
770
+ "include": "#arguments"
771
+ }
772
+ ]
773
+ },
774
+ {
775
+ "begin": "(?:(\\.)|(::))\\s*([\\w$]+)\\s*(?=\\s+(?!(?<![\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\w$]))(?=(@|@?[\\w$]+|[=-]>|\\-\\d|\\[|{|\"|')))",
776
+ "beginCaptures": {
777
+ "1": {
778
+ "name": "punctuation.separator.method.period.coffee"
779
+ },
780
+ "2": {
781
+ "name": "keyword.operator.prototype.coffee"
782
+ },
783
+ "3": {
784
+ "patterns": [
785
+ {
786
+ "include": "#method_names"
787
+ }
788
+ ]
789
+ }
790
+ },
791
+ "end": "(?=\\s*(?<![\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\w$]))|(?=\\s*(}|\\]|\\)|#|$))",
792
+ "name": "meta.method-call.coffee",
793
+ "patterns": [
794
+ {
795
+ "include": "#arguments"
796
+ }
797
+ ]
798
+ }
799
+ ]
800
+ },
801
+ "method_names": {
802
+ "patterns": [
803
+ {
804
+ "match": "(?x)\n\\bon(Rowsinserted|Rowsdelete|Rowenter|Rowexit|Resize|Resizestart|Resizeend|Reset|\nReadystatechange|Mouseout|Mouseover|Mousedown|Mouseup|Mousemove|\nBefore(cut|deactivate|unload|update|paste|print|editfocus|activate)|\nBlur|Scrolltop|Submit|Select|Selectstart|Selectionchange|Hover|Help|\nChange|Contextmenu|Controlselect|Cut|Cellchange|Clock|Close|Deactivate|\nDatasetchanged|Datasetcomplete|Dataavailable|Drop|Drag|Dragstart|Dragover|\nDragdrop|Dragenter|Dragend|Dragleave|Dblclick|Unload|Paste|Propertychange|Error|\nErrorupdate|Keydown|Keyup|Keypress|Focus|Load|Activate|Afterupdate|Afterprint|Abort)\\b",
805
+ "name": "support.function.event-handler.coffee"
806
+ },
807
+ {
808
+ "match": "(?x)\n\\b(shift|showModelessDialog|showModalDialog|showHelp|scroll|scrollX|scrollByPages|\nscrollByLines|scrollY|scrollTo|stop|strike|sizeToContent|sidebar|signText|sort|\nsup|sub|substr|substring|splice|split|send|set(Milliseconds|Seconds|Minutes|Hours|\nMonth|Year|FullYear|Date|UTC(Milliseconds|Seconds|Minutes|Hours|Month|FullYear|Date)|\nTime|Hotkeys|Cursor|ZOptions|Active|Resizable|RequestHeader)|search|slice|\nsavePreferences|small|home|handleEvent|navigate|char|charCodeAt|charAt|concat|\ncontextual|confirm|compile|clear|captureEvents|call|createStyleSheet|createPopup|\ncreateEventObject|to(GMTString|UTCString|String|Source|UpperCase|LowerCase|LocaleString)|\ntest|taint|taintEnabled|indexOf|italics|disableExternalCapture|dump|detachEvent|unshift|\nuntaint|unwatch|updateCommands|join|javaEnabled|pop|push|plugins.refresh|paddings|parse|\nprint|prompt|preference|enableExternalCapture|exec|execScript|valueOf|UTC|find|file|\nfileModifiedDate|fileSize|fileCreatedDate|fileUpdatedDate|fixed|fontsize|fontcolor|\nforward|fromCharCode|watch|link|load|lastIndexOf|anchor|attachEvent|atob|apply|alert|\nabort|routeEvents|resize|resizeBy|resizeTo|recalc|returnValue|replace|reverse|reload|\nreleaseCapture|releaseEvents|go|get(Milliseconds|Seconds|Minutes|Hours|Month|Day|Year|FullYear|\nTime|Date|TimezoneOffset|UTC(Milliseconds|Seconds|Minutes|Hours|Day|Month|FullYear|Date)|\nAttention|Selection|ResponseHeader|AllResponseHeaders)|moveBy|moveBelow|moveTo|\nmoveToAbsolute|moveAbove|mergeAttributes|match|margins|btoa|big|bold|borderWidths|blink|back)\\b",
809
+ "name": "support.function.coffee"
810
+ },
811
+ {
812
+ "match": "(?x)\n\\b(acceptNode|add|addEventListener|addTextTrack|adoptNode|after|animate|append|\nappendChild|appendData|before|blur|canPlayType|captureStream|\ncaretPositionFromPoint|caretRangeFromPoint|checkValidity|clear|click|\ncloneContents|cloneNode|cloneRange|close|closest|collapse|\ncompareBoundaryPoints|compareDocumentPosition|comparePoint|contains|\nconvertPointFromNode|convertQuadFromNode|convertRectFromNode|createAttribute|\ncreateAttributeNS|createCaption|createCDATASection|createComment|\ncreateContextualFragment|createDocument|createDocumentFragment|\ncreateDocumentType|createElement|createElementNS|createEntityReference|\ncreateEvent|createExpression|createHTMLDocument|createNodeIterator|\ncreateNSResolver|createProcessingInstruction|createRange|createShadowRoot|\ncreateTBody|createTextNode|createTFoot|createTHead|createTreeWalker|delete|\ndeleteCaption|deleteCell|deleteContents|deleteData|deleteRow|deleteTFoot|\ndeleteTHead|detach|disconnect|dispatchEvent|elementFromPoint|elementsFromPoint|\nenableStyleSheetsForSet|entries|evaluate|execCommand|exitFullscreen|\nexitPointerLock|expand|extractContents|fastSeek|firstChild|focus|forEach|get|\ngetAll|getAnimations|getAttribute|getAttributeNames|getAttributeNode|\ngetAttributeNodeNS|getAttributeNS|getBoundingClientRect|getBoxQuads|\ngetClientRects|getContext|getDestinationInsertionPoints|getElementById|\ngetElementsByClassName|getElementsByName|getElementsByTagName|\ngetElementsByTagNameNS|getItem|getNamedItem|getSelection|getStartDate|\ngetVideoPlaybackQuality|has|hasAttribute|hasAttributeNS|hasAttributes|\nhasChildNodes|hasFeature|hasFocus|importNode|initEvent|insertAdjacentElement|\ninsertAdjacentHTML|insertAdjacentText|insertBefore|insertCell|insertData|\ninsertNode|insertRow|intersectsNode|isDefaultNamespace|isEqualNode|\nisPointInRange|isSameNode|item|key|keys|lastChild|load|lookupNamespaceURI|\nlookupPrefix|matches|move|moveAttribute|moveAttributeNode|moveChild|\nmoveNamedItem|namedItem|nextNode|nextSibling|normalize|observe|open|\nparentNode|pause|play|postMessage|prepend|preventDefault|previousNode|\npreviousSibling|probablySupportsContext|queryCommandEnabled|\nqueryCommandIndeterm|queryCommandState|queryCommandSupported|queryCommandValue|\nquerySelector|querySelectorAll|registerContentHandler|registerElement|\nregisterProtocolHandler|releaseCapture|releaseEvents|remove|removeAttribute|\nremoveAttributeNode|removeAttributeNS|removeChild|removeEventListener|\nremoveItem|replace|replaceChild|replaceData|replaceWith|reportValidity|\nrequestFullscreen|requestPointerLock|reset|scroll|scrollBy|scrollIntoView|\nscrollTo|seekToNextFrame|select|selectNode|selectNodeContents|set|setAttribute|\nsetAttributeNode|setAttributeNodeNS|setAttributeNS|setCapture|\nsetCustomValidity|setEnd|setEndAfter|setEndBefore|setItem|setNamedItem|\nsetRangeText|setSelectionRange|setSinkId|setStart|setStartAfter|setStartBefore|\nslice|splitText|stepDown|stepUp|stopImmediatePropagation|stopPropagation|\nsubmit|substringData|supports|surroundContents|takeRecords|terminate|toBlob|\ntoDataURL|toggle|toString|values|write|writeln)\\b",
813
+ "name": "support.function.dom.coffee"
814
+ },
815
+ {
816
+ "match": "[a-zA-Z_$][\\w$]*",
817
+ "name": "entity.name.function.coffee"
818
+ },
819
+ {
820
+ "match": "\\d[\\w$]*",
821
+ "name": "invalid.illegal.identifier.coffee"
822
+ }
823
+ ]
824
+ },
825
+ "numbers": {
826
+ "patterns": [
827
+ {
828
+ "match": "\\b(?<!\\$)0(x|X)[0-9a-fA-F]+\\b(?!\\$)",
829
+ "name": "constant.numeric.hex.coffee"
830
+ },
831
+ {
832
+ "match": "\\b(?<!\\$)0(b|B)[01]+\\b(?!\\$)",
833
+ "name": "constant.numeric.binary.coffee"
834
+ },
835
+ {
836
+ "match": "\\b(?<!\\$)0(o|O)?[0-7]+\\b(?!\\$)",
837
+ "name": "constant.numeric.octal.coffee"
838
+ },
839
+ {
840
+ "match": "(?x)\n(?<!\\$)(?:\n (?:\\b[0-9]+(\\.)[0-9]+[eE][+-]?[0-9]+\\b)| # 1.1E+3\n (?:\\b[0-9]+(\\.)[eE][+-]?[0-9]+\\b)| # 1.E+3\n (?:\\B(\\.)[0-9]+[eE][+-]?[0-9]+\\b)| # .1E+3\n (?:\\b[0-9]+[eE][+-]?[0-9]+\\b)| # 1E+3\n (?:\\b[0-9]+(\\.)[0-9]+\\b)| # 1.1\n (?:\\b[0-9]+(?=\\.{2,3}))| # 1 followed by a slice\n (?:\\b[0-9]+(\\.)\\B)| # 1.\n (?:\\B(\\.)[0-9]+\\b)| # .1\n (?:\\b[0-9]+\\b(?!\\.)) # 1\n)(?!\\$)",
841
+ "captures": {
842
+ "0": {
843
+ "name": "constant.numeric.decimal.coffee"
844
+ },
845
+ "1": {
846
+ "name": "punctuation.separator.decimal.period.coffee"
847
+ },
848
+ "2": {
849
+ "name": "punctuation.separator.decimal.period.coffee"
850
+ },
851
+ "3": {
852
+ "name": "punctuation.separator.decimal.period.coffee"
853
+ },
854
+ "4": {
855
+ "name": "punctuation.separator.decimal.period.coffee"
856
+ },
857
+ "5": {
858
+ "name": "punctuation.separator.decimal.period.coffee"
859
+ },
860
+ "6": {
861
+ "name": "punctuation.separator.decimal.period.coffee"
862
+ }
863
+ }
864
+ }
865
+ ]
866
+ },
867
+ "objects": {
868
+ "patterns": [
869
+ {
870
+ "match": "[A-Z][A-Z0-9_$]*(?=\\s*\\??(\\.\\s*[a-zA-Z_$]\\w*|::))",
871
+ "name": "constant.other.object.coffee"
872
+ },
873
+ {
874
+ "match": "[a-zA-Z_$][\\w$]*(?=\\s*\\??(\\.\\s*[a-zA-Z_$]\\w*|::))",
875
+ "name": "variable.other.object.coffee"
876
+ }
877
+ ]
878
+ },
879
+ "operators": {
880
+ "patterns": [
881
+ {
882
+ "match": "(?:([a-zA-Z$_][\\w$]*)?\\s+|(?<![\\w$]))(and=|or=)",
883
+ "captures": {
884
+ "1": {
885
+ "name": "variable.assignment.coffee"
886
+ },
887
+ "2": {
888
+ "name": "keyword.operator.assignment.compound.coffee"
889
+ }
890
+ }
891
+ },
892
+ {
893
+ "match": "([a-zA-Z$_][\\w$]*)?\\s*(%=|\\+=|-=|\\*=|&&=|\\|\\|=|\\?=|(?<!\\()/=)",
894
+ "captures": {
895
+ "1": {
896
+ "name": "variable.assignment.coffee"
897
+ },
898
+ "2": {
899
+ "name": "keyword.operator.assignment.compound.coffee"
900
+ }
901
+ }
902
+ },
903
+ {
904
+ "match": "([a-zA-Z$_][\\w$]*)?\\s*(&=|\\^=|<<=|>>=|>>>=|\\|=)",
905
+ "captures": {
906
+ "1": {
907
+ "name": "variable.assignment.coffee"
908
+ },
909
+ "2": {
910
+ "name": "keyword.operator.assignment.compound.bitwise.coffee"
911
+ }
912
+ }
913
+ },
914
+ {
915
+ "match": "<<|>>>|>>",
916
+ "name": "keyword.operator.bitwise.shift.coffee"
917
+ },
918
+ {
919
+ "match": "!=|<=|>=|==|<|>",
920
+ "name": "keyword.operator.comparison.coffee"
921
+ },
922
+ {
923
+ "match": "&&|!|\\|\\|",
924
+ "name": "keyword.operator.logical.coffee"
925
+ },
926
+ {
927
+ "match": "&|\\||\\^|~",
928
+ "name": "keyword.operator.bitwise.coffee"
929
+ },
930
+ {
931
+ "match": "([a-zA-Z$_][\\w$]*)?\\s*(=|:(?!:))(?![>=])",
932
+ "captures": {
933
+ "1": {
934
+ "name": "variable.assignment.coffee"
935
+ },
936
+ "2": {
937
+ "name": "keyword.operator.assignment.coffee"
938
+ }
939
+ }
940
+ },
941
+ {
942
+ "match": "--",
943
+ "name": "keyword.operator.decrement.coffee"
944
+ },
945
+ {
946
+ "match": "\\+\\+",
947
+ "name": "keyword.operator.increment.coffee"
948
+ },
949
+ {
950
+ "match": "\\.\\.\\.",
951
+ "name": "keyword.operator.splat.coffee"
952
+ },
953
+ {
954
+ "match": "\\?",
955
+ "name": "keyword.operator.existential.coffee"
956
+ },
957
+ {
958
+ "match": "%|\\*|/|-|\\+",
959
+ "name": "keyword.operator.coffee"
960
+ },
961
+ {
962
+ "match": "(?x)\n\\b(?<![\\.\\$])\n(?:\n (and|or|not) # logical\n |\n (is|isnt) # comparison\n)\n(?!\\s*:)\\b",
963
+ "captures": {
964
+ "1": {
965
+ "name": "keyword.operator.logical.coffee"
966
+ },
967
+ "2": {
968
+ "name": "keyword.operator.comparison.coffee"
969
+ }
970
+ }
971
+ }
972
+ ]
973
+ },
974
+ "properties": {
975
+ "patterns": [
976
+ {
977
+ "match": "(?:(\\.)|(::))\\s*([A-Z][A-Z0-9_$]*\\b\\$*)(?=\\s*\\??(\\.\\s*[a-zA-Z_$]\\w*|::))",
978
+ "captures": {
979
+ "1": {
980
+ "name": "punctuation.separator.property.period.coffee"
981
+ },
982
+ "2": {
983
+ "name": "keyword.operator.prototype.coffee"
984
+ },
985
+ "3": {
986
+ "name": "constant.other.object.property.coffee"
987
+ }
988
+ }
989
+ },
990
+ {
991
+ "match": "(?:(\\.)|(::))\\s*(\\$*[a-zA-Z_$][\\w$]*)(?=\\s*\\??(\\.\\s*[a-zA-Z_$]\\w*|::))",
992
+ "captures": {
993
+ "1": {
994
+ "name": "punctuation.separator.property.period.coffee"
995
+ },
996
+ "2": {
997
+ "name": "keyword.operator.prototype.coffee"
998
+ },
999
+ "3": {
1000
+ "name": "variable.other.object.property.coffee"
1001
+ }
1002
+ }
1003
+ },
1004
+ {
1005
+ "match": "(?:(\\.)|(::))\\s*([A-Z][A-Z0-9_$]*\\b\\$*)",
1006
+ "captures": {
1007
+ "1": {
1008
+ "name": "punctuation.separator.property.period.coffee"
1009
+ },
1010
+ "2": {
1011
+ "name": "keyword.operator.prototype.coffee"
1012
+ },
1013
+ "3": {
1014
+ "name": "constant.other.property.coffee"
1015
+ }
1016
+ }
1017
+ },
1018
+ {
1019
+ "match": "(?:(\\.)|(::))\\s*(\\$*[a-zA-Z_$][\\w$]*)",
1020
+ "captures": {
1021
+ "1": {
1022
+ "name": "punctuation.separator.property.period.coffee"
1023
+ },
1024
+ "2": {
1025
+ "name": "keyword.operator.prototype.coffee"
1026
+ },
1027
+ "3": {
1028
+ "name": "variable.other.property.coffee"
1029
+ }
1030
+ }
1031
+ },
1032
+ {
1033
+ "match": "(?:(\\.)|(::))\\s*([0-9][\\w$]*)",
1034
+ "captures": {
1035
+ "1": {
1036
+ "name": "punctuation.separator.property.period.coffee"
1037
+ },
1038
+ "2": {
1039
+ "name": "keyword.operator.prototype.coffee"
1040
+ },
1041
+ "3": {
1042
+ "name": "invalid.illegal.identifier.coffee"
1043
+ }
1044
+ }
1045
+ }
1046
+ ]
1047
+ },
1048
+ "single_quoted_string": {
1049
+ "patterns": [
1050
+ {
1051
+ "begin": "'",
1052
+ "beginCaptures": {
1053
+ "0": {
1054
+ "name": "punctuation.definition.string.begin.coffee"
1055
+ }
1056
+ },
1057
+ "end": "'",
1058
+ "endCaptures": {
1059
+ "0": {
1060
+ "name": "punctuation.definition.string.end.coffee"
1061
+ }
1062
+ },
1063
+ "name": "string.quoted.single.coffee",
1064
+ "patterns": [
1065
+ {
1066
+ "captures": {
1067
+ "1": {
1068
+ "name": "punctuation.definition.escape.backslash.coffee"
1069
+ }
1070
+ },
1071
+ "match": "(\\\\)(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)",
1072
+ "name": "constant.character.escape.backslash.coffee"
1073
+ }
1074
+ ]
1075
+ }
1076
+ ]
1077
+ },
1078
+ "regex-character-class": {
1079
+ "patterns": [
1080
+ {
1081
+ "match": "\\\\[wWsSdD]|\\.",
1082
+ "name": "constant.character.character-class.regexp"
1083
+ },
1084
+ {
1085
+ "match": "\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})",
1086
+ "name": "constant.character.numeric.regexp"
1087
+ },
1088
+ {
1089
+ "match": "\\\\c[A-Z]",
1090
+ "name": "constant.character.control.regexp"
1091
+ },
1092
+ {
1093
+ "match": "\\\\.",
1094
+ "name": "constant.character.escape.backslash.regexp"
1095
+ }
1096
+ ]
1097
+ },
1098
+ "heregexp": {
1099
+ "patterns": [
1100
+ {
1101
+ "match": "\\\\[bB]|\\^|\\$",
1102
+ "name": "keyword.control.anchor.regexp"
1103
+ },
1104
+ {
1105
+ "match": "\\\\[1-9]\\d*",
1106
+ "name": "keyword.other.back-reference.regexp"
1107
+ },
1108
+ {
1109
+ "match": "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??",
1110
+ "name": "keyword.operator.quantifier.regexp"
1111
+ },
1112
+ {
1113
+ "match": "\\|",
1114
+ "name": "keyword.operator.or.regexp"
1115
+ },
1116
+ {
1117
+ "begin": "(\\()((\\?=)|(\\?!))",
1118
+ "beginCaptures": {
1119
+ "1": {
1120
+ "name": "punctuation.definition.group.regexp"
1121
+ },
1122
+ "3": {
1123
+ "name": "meta.assertion.look-ahead.regexp"
1124
+ },
1125
+ "4": {
1126
+ "name": "meta.assertion.negative-look-ahead.regexp"
1127
+ }
1128
+ },
1129
+ "end": "(\\))",
1130
+ "endCaptures": {
1131
+ "1": {
1132
+ "name": "punctuation.definition.group.regexp"
1133
+ }
1134
+ },
1135
+ "name": "meta.group.assertion.regexp",
1136
+ "patterns": [
1137
+ {
1138
+ "include": "#heregexp"
1139
+ }
1140
+ ]
1141
+ },
1142
+ {
1143
+ "begin": "\\((\\?:)?",
1144
+ "beginCaptures": {
1145
+ "0": {
1146
+ "name": "punctuation.definition.group.regexp"
1147
+ }
1148
+ },
1149
+ "end": "\\)",
1150
+ "endCaptures": {
1151
+ "0": {
1152
+ "name": "punctuation.definition.group.regexp"
1153
+ }
1154
+ },
1155
+ "name": "meta.group.regexp",
1156
+ "patterns": [
1157
+ {
1158
+ "include": "#heregexp"
1159
+ }
1160
+ ]
1161
+ },
1162
+ {
1163
+ "begin": "(\\[)(\\^)?",
1164
+ "beginCaptures": {
1165
+ "1": {
1166
+ "name": "punctuation.definition.character-class.regexp"
1167
+ },
1168
+ "2": {
1169
+ "name": "keyword.operator.negation.regexp"
1170
+ }
1171
+ },
1172
+ "end": "(\\])",
1173
+ "endCaptures": {
1174
+ "1": {
1175
+ "name": "punctuation.definition.character-class.regexp"
1176
+ }
1177
+ },
1178
+ "name": "constant.other.character-class.set.regexp",
1179
+ "patterns": [
1180
+ {
1181
+ "captures": {
1182
+ "1": {
1183
+ "name": "constant.character.numeric.regexp"
1184
+ },
1185
+ "2": {
1186
+ "name": "constant.character.control.regexp"
1187
+ },
1188
+ "3": {
1189
+ "name": "constant.character.escape.backslash.regexp"
1190
+ },
1191
+ "4": {
1192
+ "name": "constant.character.numeric.regexp"
1193
+ },
1194
+ "5": {
1195
+ "name": "constant.character.control.regexp"
1196
+ },
1197
+ "6": {
1198
+ "name": "constant.character.escape.backslash.regexp"
1199
+ }
1200
+ },
1201
+ "match": "(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))",
1202
+ "name": "constant.other.character-class.range.regexp"
1203
+ },
1204
+ {
1205
+ "include": "#regex-character-class"
1206
+ }
1207
+ ]
1208
+ },
1209
+ {
1210
+ "include": "#regex-character-class"
1211
+ },
1212
+ {
1213
+ "include": "#interpolated_coffee"
1214
+ },
1215
+ {
1216
+ "include": "#embedded_comment"
1217
+ }
1218
+ ]
1219
+ },
1220
+ "jsx": {
1221
+ "patterns": [
1222
+ {
1223
+ "include": "#jsx-tag"
1224
+ },
1225
+ {
1226
+ "include": "#jsx-end-tag"
1227
+ }
1228
+ ]
1229
+ },
1230
+ "jsx-expression": {
1231
+ "begin": "{",
1232
+ "beginCaptures": {
1233
+ "0": {
1234
+ "name": "meta.brace.curly.coffee"
1235
+ }
1236
+ },
1237
+ "end": "}",
1238
+ "endCaptures": {
1239
+ "0": {
1240
+ "name": "meta.brace.curly.coffee"
1241
+ }
1242
+ },
1243
+ "patterns": [
1244
+ {
1245
+ "include": "#double_quoted_string"
1246
+ },
1247
+ {
1248
+ "include": "$self"
1249
+ }
1250
+ ]
1251
+ },
1252
+ "jsx-attribute": {
1253
+ "patterns": [
1254
+ {
1255
+ "captures": {
1256
+ "1": {
1257
+ "name": "entity.other.attribute-name.coffee"
1258
+ },
1259
+ "2": {
1260
+ "name": "keyword.operator.assignment.coffee"
1261
+ }
1262
+ },
1263
+ "match": "(?:^|\\s+)([-\\w.]+)\\s*(=)"
1264
+ },
1265
+ {
1266
+ "include": "#double_quoted_string"
1267
+ },
1268
+ {
1269
+ "include": "#single_quoted_string"
1270
+ },
1271
+ {
1272
+ "include": "#jsx-expression"
1273
+ }
1274
+ ]
1275
+ },
1276
+ "jsx-tag": {
1277
+ "patterns": [
1278
+ {
1279
+ "begin": "(<)([-\\w\\.]+)",
1280
+ "beginCaptures": {
1281
+ "1": {
1282
+ "name": "punctuation.definition.tag.coffee"
1283
+ },
1284
+ "2": {
1285
+ "name": "entity.name.tag.coffee"
1286
+ }
1287
+ },
1288
+ "end": "(/?>)",
1289
+ "name": "meta.tag.coffee",
1290
+ "patterns": [
1291
+ {
1292
+ "include": "#jsx-attribute"
1293
+ }
1294
+ ]
1295
+ }
1296
+ ]
1297
+ },
1298
+ "jsx-end-tag": {
1299
+ "patterns": [
1300
+ {
1301
+ "begin": "(</)([-\\w\\.]+)",
1302
+ "beginCaptures": {
1303
+ "1": {
1304
+ "name": "punctuation.definition.tag.coffee"
1305
+ },
1306
+ "2": {
1307
+ "name": "entity.name.tag.coffee"
1308
+ }
1309
+ },
1310
+ "end": "(/?>)",
1311
+ "name": "meta.tag.coffee"
1312
+ }
1313
+ ]
1314
+ }
1315
+ }
1316
+ }
package/index.js ADDED
@@ -0,0 +1,8 @@
1
+ import { registerExtension } from 'vscode/extensions';
2
+
3
+ var manifest = {name:"coffeescript",displayName:"CoffeeScript Language Basics",description:"Provides snippets, syntax highlighting, bracket matching and folding in CoffeeScript files.",version:"1.0.0",publisher:"vscode",license:"MIT",engines:{vscode:"*"},scripts:{"update-grammar":"node ../node_modules/vscode-grammar-updater/bin atom/language-coffee-script grammars/coffeescript.cson ./syntaxes/coffeescript.tmLanguage.json"},contributes:{languages:[{id:"coffeescript",extensions:[".coffee",".cson",".iced"],aliases:["CoffeeScript","coffeescript","coffee"],configuration:"./language-configuration.json"}],grammars:[{language:"coffeescript",scopeName:"source.coffee",path:"./syntaxes/coffeescript.tmLanguage.json"}],breakpoints:[{language:"coffeescript"}],snippets:[{language:"coffeescript",path:"./snippets/coffeescript.code-snippets"}],configurationDefaults:{"[coffeescript]":{"diffEditor.ignoreTrimWhitespace":false}}},repository:{type:"git",url:"https://github.com/microsoft/vscode.git"},main:undefined};
4
+
5
+ const { registerFileUrl } = registerExtension(manifest);
6
+ registerFileUrl('./syntaxes/coffeescript.tmLanguage.json', new URL('./coffeescript.tmLanguage.json', import.meta.url).toString(), 'application/json');
7
+ registerFileUrl('./language-configuration.json', new URL('./language-configuration.json', import.meta.url).toString(), 'application/json');
8
+ registerFileUrl('./snippets/coffeescript.code-snippets', new URL('./coffeescript.code-snippets', import.meta.url).toString(), 'application/json');
@@ -0,0 +1,33 @@
1
+ {
2
+ "comments": {
3
+ "lineComment": "#",
4
+ "blockComment": [ "###", "###" ]
5
+ },
6
+ "brackets": [
7
+ ["{", "}"],
8
+ ["[", "]"],
9
+ ["(", ")"]
10
+ ],
11
+ "autoClosingPairs": [
12
+ ["{", "}"],
13
+ ["[", "]"],
14
+ ["(", ")"],
15
+ { "open": "\"", "close": "\"", "notIn": ["string"] },
16
+ { "open": "'", "close": "'", "notIn": ["string"] }
17
+ ],
18
+ "surroundingPairs": [
19
+ ["{", "}"],
20
+ ["[", "]"],
21
+ ["(", ")"],
22
+ ["\"", "\""],
23
+ ["'", "'"],
24
+ [" ", " "]
25
+ ],
26
+ "folding": {
27
+ "offSide": true,
28
+ "markers": {
29
+ "start": "^\\s*#region\\b",
30
+ "end": "^\\s*#endregion\\b"
31
+ }
32
+ }
33
+ }
package/package.json ADDED
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "@codingame/monaco-vscode-coffeescript-default-extension",
3
+ "version": "1.81.8-next.1",
4
+ "keywords": [],
5
+ "author": {
6
+ "name": "CodinGame",
7
+ "url": "http://www.codingame.com"
8
+ },
9
+ "license": "MIT",
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "https://github.com/CodinGame/monaco-vscode-api"
13
+ },
14
+ "type": "module",
15
+ "private": false,
16
+ "description": "Default VSCode extension designed to be used with @codingame/monaco-vscode-api",
17
+ "main": "index.js",
18
+ "module": "index.js",
19
+ "dependencies": {
20
+ "vscode": "npm:@codingame/monaco-vscode-api@1.81.8-next.1"
21
+ }
22
+ }