tm-grammars 0.0.0

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.
Files changed (181) hide show
  1. package/LICENSE +22 -0
  2. package/NOTICE +6565 -0
  3. package/README.md +211 -0
  4. package/grammars/abap.json +380 -0
  5. package/grammars/actionscript-3.json +951 -0
  6. package/grammars/ada.json +3874 -0
  7. package/grammars/apache.json +562 -0
  8. package/grammars/apex.json +3203 -0
  9. package/grammars/apl.json +1479 -0
  10. package/grammars/applescript.json +1406 -0
  11. package/grammars/ara.json +428 -0
  12. package/grammars/asm.json +1741 -0
  13. package/grammars/astro.json +776 -0
  14. package/grammars/awk.json +388 -0
  15. package/grammars/ballerina.json +3768 -0
  16. package/grammars/bat.json +783 -0
  17. package/grammars/beancount.json +831 -0
  18. package/grammars/berry.json +172 -0
  19. package/grammars/bibtex.json +315 -0
  20. package/grammars/bicep.json +239 -0
  21. package/grammars/blade.json +3870 -0
  22. package/grammars/c.json +3552 -0
  23. package/grammars/cadence.json +738 -0
  24. package/grammars/clarity.json +877 -0
  25. package/grammars/clojure.json +426 -0
  26. package/grammars/cmake.json +143 -0
  27. package/grammars/cobol.json +1124 -0
  28. package/grammars/codeql.json +1540 -0
  29. package/grammars/coffee.json +1311 -0
  30. package/grammars/cpp-macro.json +9498 -0
  31. package/grammars/cpp.json +16635 -0
  32. package/grammars/crystal.json +1866 -0
  33. package/grammars/csharp.json +5722 -0
  34. package/grammars/css.json +1860 -0
  35. package/grammars/csv.json +46 -0
  36. package/grammars/cue.json +1128 -0
  37. package/grammars/cypher.json +353 -0
  38. package/grammars/d.json +3185 -0
  39. package/grammars/dart.json +522 -0
  40. package/grammars/dax.json +185 -0
  41. package/grammars/diff.json +155 -0
  42. package/grammars/docker.json +97 -0
  43. package/grammars/dream-maker.json +640 -0
  44. package/grammars/elixir.json +1014 -0
  45. package/grammars/elm.json +751 -0
  46. package/grammars/erb.json +156 -0
  47. package/grammars/erlang.json +1757 -0
  48. package/grammars/fish.json +189 -0
  49. package/grammars/fsharp.json +1831 -0
  50. package/grammars/gdresource.json +290 -0
  51. package/grammars/gdscript.json +969 -0
  52. package/grammars/gdshader.json +405 -0
  53. package/grammars/gherkin.json +133 -0
  54. package/grammars/git-commit.json +85 -0
  55. package/grammars/git-rebase.json +56 -0
  56. package/grammars/glimmer-js.json +98 -0
  57. package/grammars/glimmer-ts.json +98 -0
  58. package/grammars/glsl.json +57 -0
  59. package/grammars/gnuplot.json +892 -0
  60. package/grammars/go.json +1012 -0
  61. package/grammars/graphql.json +1295 -0
  62. package/grammars/groovy.json +1378 -0
  63. package/grammars/hack.json +2650 -0
  64. package/grammars/haml.json +598 -0
  65. package/grammars/handlebars.json +848 -0
  66. package/grammars/haskell.json +2431 -0
  67. package/grammars/hcl.json +787 -0
  68. package/grammars/hjson.json +821 -0
  69. package/grammars/hlsl.json +212 -0
  70. package/grammars/html.json +93 -0
  71. package/grammars/imba.json +2696 -0
  72. package/grammars/ini.json +108 -0
  73. package/grammars/java.json +1885 -0
  74. package/grammars/javascript.json +5984 -0
  75. package/grammars/jinja-html.json +16 -0
  76. package/grammars/jinja.json +345 -0
  77. package/grammars/jison.json +715 -0
  78. package/grammars/jsdoc.json +21 -0
  79. package/grammars/json.json +208 -0
  80. package/grammars/json5.json +244 -0
  81. package/grammars/jsonc.json +208 -0
  82. package/grammars/jsonl.json +208 -0
  83. package/grammars/jsonnet.json +211 -0
  84. package/grammars/jssm.json +159 -0
  85. package/grammars/jsx.json +5984 -0
  86. package/grammars/julia.json +1061 -0
  87. package/grammars/kotlin.json +580 -0
  88. package/grammars/kusto.json +687 -0
  89. package/grammars/latex.json +2395 -0
  90. package/grammars/less.json +5012 -0
  91. package/grammars/liquid.json +990 -0
  92. package/grammars/lisp.json +121 -0
  93. package/grammars/logo.json +55 -0
  94. package/grammars/lua.json +956 -0
  95. package/grammars/make.json +629 -0
  96. package/grammars/markdown.json +3066 -0
  97. package/grammars/marko.json +1344 -0
  98. package/grammars/matlab.json +1131 -0
  99. package/grammars/mdc.json +571 -0
  100. package/grammars/mdx.json +5629 -0
  101. package/grammars/mermaid.json +1382 -0
  102. package/grammars/mojo.json +4153 -0
  103. package/grammars/narrat.json +227 -0
  104. package/grammars/nextflow.json +298 -0
  105. package/grammars/nginx.json +2121 -0
  106. package/grammars/nim.json +1522 -0
  107. package/grammars/nix.json +1200 -0
  108. package/grammars/nushell.json +1047 -0
  109. package/grammars/objective-c.json +3750 -0
  110. package/grammars/objective-cpp.json +7242 -0
  111. package/grammars/ocaml.json +2967 -0
  112. package/grammars/pascal.json +154 -0
  113. package/grammars/perl.json +2971 -0
  114. package/grammars/php.json +4024 -0
  115. package/grammars/plsql.json +241 -0
  116. package/grammars/postcss.json +377 -0
  117. package/grammars/powerquery.json +349 -0
  118. package/grammars/powershell.json +1024 -0
  119. package/grammars/prisma.json +443 -0
  120. package/grammars/prolog.json +298 -0
  121. package/grammars/proto.json +507 -0
  122. package/grammars/pug.json +1033 -0
  123. package/grammars/puppet.json +777 -0
  124. package/grammars/purescript.json +871 -0
  125. package/grammars/python.json +4208 -0
  126. package/grammars/r.json +637 -0
  127. package/grammars/raku.json +310 -0
  128. package/grammars/razor.json +1813 -0
  129. package/grammars/reg.json +136 -0
  130. package/grammars/rel.json +200 -0
  131. package/grammars/riscv.json +298 -0
  132. package/grammars/rst.json +734 -0
  133. package/grammars/ruby.json +2769 -0
  134. package/grammars/rust.json +1171 -0
  135. package/grammars/sas.json +302 -0
  136. package/grammars/sass.json +618 -0
  137. package/grammars/scala.json +1313 -0
  138. package/grammars/scheme.json +384 -0
  139. package/grammars/scss.json +1874 -0
  140. package/grammars/shaderlab.json +199 -0
  141. package/grammars/shellscript.json +2025 -0
  142. package/grammars/shellsession.json +33 -0
  143. package/grammars/smalltalk.json +235 -0
  144. package/grammars/solidity.json +1210 -0
  145. package/grammars/sparql.json +45 -0
  146. package/grammars/splunk.json +91 -0
  147. package/grammars/sql.json +631 -0
  148. package/grammars/ssh-config.json +88 -0
  149. package/grammars/stata.json +3050 -0
  150. package/grammars/stylus.json +1208 -0
  151. package/grammars/svelte.json +1171 -0
  152. package/grammars/swift.json +4203 -0
  153. package/grammars/system-verilog.json +1063 -0
  154. package/grammars/tasl.json +292 -0
  155. package/grammars/tcl.json +291 -0
  156. package/grammars/tex.json +281 -0
  157. package/grammars/toml.json +431 -0
  158. package/grammars/tsx.json +5984 -0
  159. package/grammars/turtle.json +261 -0
  160. package/grammars/twig.json +1394 -0
  161. package/grammars/typescript.json +5735 -0
  162. package/grammars/v.json +1001 -0
  163. package/grammars/vb.json +232 -0
  164. package/grammars/verilog.json +305 -0
  165. package/grammars/vhdl.json +1484 -0
  166. package/grammars/viml.json +445 -0
  167. package/grammars/vue-html.json +559 -0
  168. package/grammars/vue.json +1237 -0
  169. package/grammars/vyper.json +5415 -0
  170. package/grammars/wasm.json +831 -0
  171. package/grammars/wenyan.json +129 -0
  172. package/grammars/wgsl.json +391 -0
  173. package/grammars/wolfram.json +2370 -0
  174. package/grammars/xml.json +382 -0
  175. package/grammars/xsl.json +89 -0
  176. package/grammars/yaml.json +616 -0
  177. package/grammars/zenscript.json +257 -0
  178. package/grammars/zig.json +312 -0
  179. package/index.d.ts +18 -0
  180. package/index.js +2165 -0
  181. package/package.json +46 -0
@@ -0,0 +1,1311 @@
1
+ {
2
+ "displayName": "CoffeeScript",
3
+ "name": "coffee",
4
+ "patterns": [
5
+ {
6
+ "include": "#jsx"
7
+ },
8
+ {
9
+ "captures": {
10
+ "1": {
11
+ "name": "keyword.operator.new.coffee"
12
+ },
13
+ "2": {
14
+ "name": "storage.type.class.coffee"
15
+ },
16
+ "3": {
17
+ "name": "entity.name.type.instance.coffee"
18
+ },
19
+ "4": {
20
+ "name": "entity.name.type.instance.coffee"
21
+ }
22
+ },
23
+ "match": "(new)\\s+(?:(?:(class)\\s+(\\w+(?:\\.\\w*)*)?)|(\\w+(?:\\.\\w*)*))",
24
+ "name": "meta.class.instance.constructor.coffee"
25
+ },
26
+ {
27
+ "begin": "'''",
28
+ "beginCaptures": {
29
+ "0": {
30
+ "name": "punctuation.definition.string.begin.coffee"
31
+ }
32
+ },
33
+ "end": "'''",
34
+ "endCaptures": {
35
+ "0": {
36
+ "name": "punctuation.definition.string.end.coffee"
37
+ }
38
+ },
39
+ "name": "string.quoted.single.heredoc.coffee",
40
+ "patterns": [
41
+ {
42
+ "captures": {
43
+ "1": {
44
+ "name": "punctuation.definition.escape.backslash.coffee"
45
+ }
46
+ },
47
+ "match": "(\\\\).",
48
+ "name": "constant.character.escape.backslash.coffee"
49
+ }
50
+ ]
51
+ },
52
+ {
53
+ "begin": "\"\"\"",
54
+ "beginCaptures": {
55
+ "0": {
56
+ "name": "punctuation.definition.string.begin.coffee"
57
+ }
58
+ },
59
+ "end": "\"\"\"",
60
+ "endCaptures": {
61
+ "0": {
62
+ "name": "punctuation.definition.string.end.coffee"
63
+ }
64
+ },
65
+ "name": "string.quoted.double.heredoc.coffee",
66
+ "patterns": [
67
+ {
68
+ "captures": {
69
+ "1": {
70
+ "name": "punctuation.definition.escape.backslash.coffee"
71
+ }
72
+ },
73
+ "match": "(\\\\).",
74
+ "name": "constant.character.escape.backslash.coffee"
75
+ },
76
+ {
77
+ "include": "#interpolated_coffee"
78
+ }
79
+ ]
80
+ },
81
+ {
82
+ "captures": {
83
+ "1": {
84
+ "name": "punctuation.definition.string.begin.coffee"
85
+ },
86
+ "2": {
87
+ "name": "source.js.embedded.coffee",
88
+ "patterns": [
89
+ {
90
+ "include": "source.js"
91
+ }
92
+ ]
93
+ },
94
+ "3": {
95
+ "name": "punctuation.definition.string.end.coffee"
96
+ }
97
+ },
98
+ "match": "(`)(.*)(`)",
99
+ "name": "string.quoted.script.coffee"
100
+ },
101
+ {
102
+ "begin": "(?<!#)###(?!#)",
103
+ "beginCaptures": {
104
+ "0": {
105
+ "name": "punctuation.definition.comment.coffee"
106
+ }
107
+ },
108
+ "end": "###",
109
+ "endCaptures": {
110
+ "0": {
111
+ "name": "punctuation.definition.comment.coffee"
112
+ }
113
+ },
114
+ "name": "comment.block.coffee",
115
+ "patterns": [
116
+ {
117
+ "match": "(?<=^|\\s)@\\w*(?=\\s)",
118
+ "name": "storage.type.annotation.coffee"
119
+ }
120
+ ]
121
+ },
122
+ {
123
+ "begin": "#",
124
+ "beginCaptures": {
125
+ "0": {
126
+ "name": "punctuation.definition.comment.coffee"
127
+ }
128
+ },
129
+ "end": "$",
130
+ "name": "comment.line.number-sign.coffee"
131
+ },
132
+ {
133
+ "begin": "///",
134
+ "beginCaptures": {
135
+ "0": {
136
+ "name": "punctuation.definition.string.begin.coffee"
137
+ }
138
+ },
139
+ "end": "(///)[gimuy]*",
140
+ "endCaptures": {
141
+ "1": {
142
+ "name": "punctuation.definition.string.end.coffee"
143
+ }
144
+ },
145
+ "name": "string.regexp.multiline.coffee",
146
+ "patterns": [
147
+ {
148
+ "include": "#heregexp"
149
+ }
150
+ ]
151
+ },
152
+ {
153
+ "begin": "(?<![\\w$])(/)(?=(?![/*+?])(.+)(/)[gimuy]*(?!\\s*[\\w$/(]))",
154
+ "beginCaptures": {
155
+ "1": {
156
+ "name": "punctuation.definition.string.begin.coffee"
157
+ }
158
+ },
159
+ "end": "(/)[gimuy]*(?!\\s*[\\w$/(])",
160
+ "endCaptures": {
161
+ "1": {
162
+ "name": "punctuation.definition.string.end.coffee"
163
+ }
164
+ },
165
+ "name": "string.regexp.coffee",
166
+ "patterns": [
167
+ {
168
+ "include": "source.js.regexp"
169
+ }
170
+ ]
171
+ },
172
+ {
173
+ "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",
174
+ "name": "keyword.control.coffee"
175
+ },
176
+ {
177
+ "match": "\\b(?<![\\.\\$])(delete|instanceof|new|typeof)(?!\\s*:)\\b",
178
+ "name": "keyword.operator.$1.coffee"
179
+ },
180
+ {
181
+ "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",
182
+ "name": "keyword.reserved.coffee"
183
+ },
184
+ {
185
+ "begin": "(?x)\n(?<=\\s|^)((@)?[a-zA-Z_$][\\w$]*)\n\\s*([:=])\\s*\n(?=(\\([^\\(\\)]*\\)\\s*)?[=-]>)",
186
+ "beginCaptures": {
187
+ "1": {
188
+ "name": "entity.name.function.coffee"
189
+ },
190
+ "2": {
191
+ "name": "variable.other.readwrite.instance.coffee"
192
+ },
193
+ "3": {
194
+ "name": "keyword.operator.assignment.coffee"
195
+ }
196
+ },
197
+ "end": "[=-]>",
198
+ "endCaptures": {
199
+ "0": {
200
+ "name": "storage.type.function.coffee"
201
+ }
202
+ },
203
+ "name": "meta.function.coffee",
204
+ "patterns": [
205
+ {
206
+ "include": "#function_params"
207
+ }
208
+ ]
209
+ },
210
+ {
211
+ "begin": "(?x)\n(?<=\\s|^)(?:((')([^']*?)('))|((\")([^\"]*?)(\")))\n\\s*([:=])\\s*\n(?=(\\([^\\(\\)]*\\)\\s*)?[=-]>)",
212
+ "beginCaptures": {
213
+ "1": {
214
+ "name": "string.quoted.single.coffee"
215
+ },
216
+ "2": {
217
+ "name": "punctuation.definition.string.begin.coffee"
218
+ },
219
+ "3": {
220
+ "name": "entity.name.function.coffee"
221
+ },
222
+ "4": {
223
+ "name": "punctuation.definition.string.end.coffee"
224
+ },
225
+ "5": {
226
+ "name": "string.quoted.double.coffee"
227
+ },
228
+ "6": {
229
+ "name": "punctuation.definition.string.begin.coffee"
230
+ },
231
+ "7": {
232
+ "name": "entity.name.function.coffee"
233
+ },
234
+ "8": {
235
+ "name": "punctuation.definition.string.end.coffee"
236
+ },
237
+ "9": {
238
+ "name": "keyword.operator.assignment.coffee"
239
+ }
240
+ },
241
+ "end": "[=-]>",
242
+ "endCaptures": {
243
+ "0": {
244
+ "name": "storage.type.function.coffee"
245
+ }
246
+ },
247
+ "name": "meta.function.coffee",
248
+ "patterns": [
249
+ {
250
+ "include": "#function_params"
251
+ }
252
+ ]
253
+ },
254
+ {
255
+ "begin": "(?=(\\([^\\(\\)]*\\)\\s*)?[=-]>)",
256
+ "end": "[=-]>",
257
+ "endCaptures": {
258
+ "0": {
259
+ "name": "storage.type.function.coffee"
260
+ }
261
+ },
262
+ "name": "meta.function.inline.coffee",
263
+ "patterns": [
264
+ {
265
+ "include": "#function_params"
266
+ }
267
+ ]
268
+ },
269
+ {
270
+ "begin": "(?<=\\s|^)({)(?=[^'\"#]+?}[\\s\\]}]*=)",
271
+ "beginCaptures": {
272
+ "1": {
273
+ "name": "punctuation.definition.destructuring.begin.bracket.curly.coffee"
274
+ }
275
+ },
276
+ "end": "}",
277
+ "endCaptures": {
278
+ "0": {
279
+ "name": "punctuation.definition.destructuring.end.bracket.curly.coffee"
280
+ }
281
+ },
282
+ "name": "meta.variable.assignment.destructured.object.coffee",
283
+ "patterns": [
284
+ {
285
+ "include": "$self"
286
+ },
287
+ {
288
+ "match": "[a-zA-Z$_]\\w*",
289
+ "name": "variable.assignment.coffee"
290
+ }
291
+ ]
292
+ },
293
+ {
294
+ "begin": "(?<=\\s|^)(\\[)(?=[^'\"#]+?\\][\\s\\]}]*=)",
295
+ "beginCaptures": {
296
+ "1": {
297
+ "name": "punctuation.definition.destructuring.begin.bracket.square.coffee"
298
+ }
299
+ },
300
+ "end": "\\]",
301
+ "endCaptures": {
302
+ "0": {
303
+ "name": "punctuation.definition.destructuring.end.bracket.square.coffee"
304
+ }
305
+ },
306
+ "name": "meta.variable.assignment.destructured.array.coffee",
307
+ "patterns": [
308
+ {
309
+ "include": "$self"
310
+ },
311
+ {
312
+ "match": "[a-zA-Z$_]\\w*",
313
+ "name": "variable.assignment.coffee"
314
+ }
315
+ ]
316
+ },
317
+ {
318
+ "match": "\\b(?<!\\.|::)(true|on|yes)(?!\\s*[:=][^=])\\b",
319
+ "name": "constant.language.boolean.true.coffee"
320
+ },
321
+ {
322
+ "match": "\\b(?<!\\.|::)(false|off|no)(?!\\s*[:=][^=])\\b",
323
+ "name": "constant.language.boolean.false.coffee"
324
+ },
325
+ {
326
+ "match": "\\b(?<!\\.|::)null(?!\\s*[:=][^=])\\b",
327
+ "name": "constant.language.null.coffee"
328
+ },
329
+ {
330
+ "match": "\\b(?<!\\.|::)extends(?!\\s*[:=])\\b",
331
+ "name": "variable.language.coffee"
332
+ },
333
+ {
334
+ "match": "(?<!\\.)\\b(?<!\\$)(super|this|arguments)(?!\\s*[:=][^=]|\\$)\\b",
335
+ "name": "variable.language.$1.coffee"
336
+ },
337
+ {
338
+ "captures": {
339
+ "1": {
340
+ "name": "storage.type.class.coffee"
341
+ },
342
+ "2": {
343
+ "name": "keyword.control.inheritance.coffee"
344
+ },
345
+ "3": {
346
+ "name": "entity.other.inherited-class.coffee"
347
+ }
348
+ },
349
+ "match": "(?<=\\s|^|\\[|\\()(class)\\s+(extends)\\s+(@?[a-zA-Z\\$\\._][\\w\\.]*)",
350
+ "name": "meta.class.coffee"
351
+ },
352
+ {
353
+ "captures": {
354
+ "1": {
355
+ "name": "storage.type.class.coffee"
356
+ },
357
+ "2": {
358
+ "name": "entity.name.type.class.coffee"
359
+ },
360
+ "3": {
361
+ "name": "keyword.control.inheritance.coffee"
362
+ },
363
+ "4": {
364
+ "name": "entity.other.inherited-class.coffee"
365
+ }
366
+ },
367
+ "match": "(?<=\\s|^|\\[|\\()(class\\b)\\s+(@?[a-zA-Z\\$_][\\w\\.]*)?(?:\\s+(extends)\\s+(@?[a-zA-Z\\$\\._][\\w\\.]*))?",
368
+ "name": "meta.class.coffee"
369
+ },
370
+ {
371
+ "match": "\\b(debugger|\\\\)\\b",
372
+ "name": "keyword.other.coffee"
373
+ },
374
+ {
375
+ "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",
376
+ "name": "support.class.coffee"
377
+ },
378
+ {
379
+ "match": "\\b(console)\\b",
380
+ "name": "entity.name.type.object.coffee"
381
+ },
382
+ {
383
+ "match": "((?<=console\\.)(debug|warn|info|log|error|time|timeEnd|assert))\\b",
384
+ "name": "support.function.console.coffee"
385
+ },
386
+ {
387
+ "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",
388
+ "name": "support.function.method.array.coffee"
389
+ },
390
+ {
391
+ "match": "((?<=Array\\.)(isArray))\\b",
392
+ "name": "support.function.static.array.coffee"
393
+ },
394
+ {
395
+ "match": "((?<=Object\\.)(create|definePropert(ies|y)|freeze|getOwnProperty(Descriptors?|Names)|getProperty(Descriptor|Names)|getPrototypeOf|is(Extensible|Frozen|Sealed)?|isnt|keys|preventExtensions|seal))\\b",
396
+ "name": "support.function.static.object.coffee"
397
+ },
398
+ {
399
+ "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",
400
+ "name": "support.function.static.math.coffee"
401
+ },
402
+ {
403
+ "match": "((?<=Number\\.)(is(Finite|Integer|NaN)|toInteger))\\b",
404
+ "name": "support.function.static.number.coffee"
405
+ },
406
+ {
407
+ "match": "(?<!\\.)\\b(module|exports|__filename|__dirname|global|process)(?!\\s*:)\\b",
408
+ "name": "support.variable.coffee"
409
+ },
410
+ {
411
+ "match": "\\b(Infinity|NaN|undefined)\\b",
412
+ "name": "constant.language.coffee"
413
+ },
414
+ {
415
+ "include": "#operators"
416
+ },
417
+ {
418
+ "include": "#method_calls"
419
+ },
420
+ {
421
+ "include": "#function_calls"
422
+ },
423
+ {
424
+ "include": "#numbers"
425
+ },
426
+ {
427
+ "include": "#objects"
428
+ },
429
+ {
430
+ "include": "#properties"
431
+ },
432
+ {
433
+ "match": "::",
434
+ "name": "keyword.operator.prototype.coffee"
435
+ },
436
+ {
437
+ "match": "(?<!\\$)\\b[0-9]+[\\w$]*",
438
+ "name": "invalid.illegal.identifier.coffee"
439
+ },
440
+ {
441
+ "match": ";",
442
+ "name": "punctuation.terminator.statement.coffee"
443
+ },
444
+ {
445
+ "match": ",",
446
+ "name": "punctuation.separator.delimiter.coffee"
447
+ },
448
+ {
449
+ "begin": "{",
450
+ "beginCaptures": {
451
+ "0": {
452
+ "name": "meta.brace.curly.coffee"
453
+ }
454
+ },
455
+ "end": "}",
456
+ "endCaptures": {
457
+ "0": {
458
+ "name": "meta.brace.curly.coffee"
459
+ }
460
+ },
461
+ "patterns": [
462
+ {
463
+ "include": "$self"
464
+ }
465
+ ]
466
+ },
467
+ {
468
+ "begin": "\\[",
469
+ "beginCaptures": {
470
+ "0": {
471
+ "name": "punctuation.definition.array.begin.bracket.square.coffee"
472
+ }
473
+ },
474
+ "end": "\\]",
475
+ "endCaptures": {
476
+ "0": {
477
+ "name": "punctuation.definition.array.end.bracket.square.coffee"
478
+ }
479
+ },
480
+ "patterns": [
481
+ {
482
+ "match": "(?<!\\.)\\.{3}",
483
+ "name": "keyword.operator.slice.exclusive.coffee"
484
+ },
485
+ {
486
+ "match": "(?<!\\.)\\.{2}",
487
+ "name": "keyword.operator.slice.inclusive.coffee"
488
+ },
489
+ {
490
+ "include": "$self"
491
+ }
492
+ ]
493
+ },
494
+ {
495
+ "begin": "\\(",
496
+ "beginCaptures": {
497
+ "0": {
498
+ "name": "meta.brace.round.coffee"
499
+ }
500
+ },
501
+ "end": "\\)",
502
+ "endCaptures": {
503
+ "0": {
504
+ "name": "meta.brace.round.coffee"
505
+ }
506
+ },
507
+ "patterns": [
508
+ {
509
+ "include": "$self"
510
+ }
511
+ ]
512
+ },
513
+ {
514
+ "include": "#instance_variable"
515
+ },
516
+ {
517
+ "include": "#single_quoted_string"
518
+ },
519
+ {
520
+ "include": "#double_quoted_string"
521
+ }
522
+ ],
523
+ "repository": {
524
+ "arguments": {
525
+ "patterns": [
526
+ {
527
+ "begin": "\\(",
528
+ "beginCaptures": {
529
+ "0": {
530
+ "name": "punctuation.definition.arguments.begin.bracket.round.coffee"
531
+ }
532
+ },
533
+ "end": "\\)",
534
+ "endCaptures": {
535
+ "0": {
536
+ "name": "punctuation.definition.arguments.end.bracket.round.coffee"
537
+ }
538
+ },
539
+ "name": "meta.arguments.coffee",
540
+ "patterns": [
541
+ {
542
+ "include": "$self"
543
+ }
544
+ ]
545
+ },
546
+ {
547
+ "begin": "(?=(@|@?[\\w$]+|[=-]>|\\-\\d|\\[|{|\"|'))",
548
+ "end": "(?=\\s*(?<![\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\w$]))|(?=\\s*(}|\\]|\\)|#|$))",
549
+ "name": "meta.arguments.coffee",
550
+ "patterns": [
551
+ {
552
+ "include": "$self"
553
+ }
554
+ ]
555
+ }
556
+ ]
557
+ },
558
+ "double_quoted_string": {
559
+ "patterns": [
560
+ {
561
+ "begin": "\"",
562
+ "beginCaptures": {
563
+ "0": {
564
+ "name": "punctuation.definition.string.begin.coffee"
565
+ }
566
+ },
567
+ "end": "\"",
568
+ "endCaptures": {
569
+ "0": {
570
+ "name": "punctuation.definition.string.end.coffee"
571
+ }
572
+ },
573
+ "name": "string.quoted.double.coffee",
574
+ "patterns": [
575
+ {
576
+ "captures": {
577
+ "1": {
578
+ "name": "punctuation.definition.escape.backslash.coffee"
579
+ }
580
+ },
581
+ "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]?|.)",
582
+ "name": "constant.character.escape.backslash.coffee"
583
+ },
584
+ {
585
+ "include": "#interpolated_coffee"
586
+ }
587
+ ]
588
+ }
589
+ ]
590
+ },
591
+ "embedded_comment": {
592
+ "patterns": [
593
+ {
594
+ "captures": {
595
+ "1": {
596
+ "name": "punctuation.definition.comment.coffee"
597
+ }
598
+ },
599
+ "match": "(?<!\\\\)(#).*$\\n?",
600
+ "name": "comment.line.number-sign.coffee"
601
+ }
602
+ ]
603
+ },
604
+ "function_calls": {
605
+ "patterns": [
606
+ {
607
+ "begin": "(@)?([\\w$]+)(?=\\()",
608
+ "beginCaptures": {
609
+ "1": {
610
+ "name": "variable.other.readwrite.instance.coffee"
611
+ },
612
+ "2": {
613
+ "patterns": [
614
+ {
615
+ "include": "#function_names"
616
+ }
617
+ ]
618
+ }
619
+ },
620
+ "end": "(?<=\\))",
621
+ "name": "meta.function-call.coffee",
622
+ "patterns": [
623
+ {
624
+ "include": "#arguments"
625
+ }
626
+ ]
627
+ },
628
+ {
629
+ "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|\\[|{|\"|')))",
630
+ "beginCaptures": {
631
+ "1": {
632
+ "name": "variable.other.readwrite.instance.coffee"
633
+ },
634
+ "2": {
635
+ "patterns": [
636
+ {
637
+ "include": "#function_names"
638
+ }
639
+ ]
640
+ }
641
+ },
642
+ "end": "(?=\\s*(?<![\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\w$]))|(?=\\s*(}|\\]|\\)|#|$))",
643
+ "name": "meta.function-call.coffee",
644
+ "patterns": [
645
+ {
646
+ "include": "#arguments"
647
+ }
648
+ ]
649
+ }
650
+ ]
651
+ },
652
+ "function_names": {
653
+ "patterns": [
654
+ {
655
+ "match": "(?x)\n\\b(isNaN|isFinite|eval|uneval|parseInt|parseFloat|decodeURI|\ndecodeURIComponent|encodeURI|encodeURIComponent|escape|unescape|\nrequire|set(Interval|Timeout)|clear(Interval|Timeout))\\b",
656
+ "name": "support.function.coffee"
657
+ },
658
+ {
659
+ "match": "[a-zA-Z_$][\\w$]*",
660
+ "name": "entity.name.function.coffee"
661
+ },
662
+ {
663
+ "match": "\\d[\\w$]*",
664
+ "name": "invalid.illegal.identifier.coffee"
665
+ }
666
+ ]
667
+ },
668
+ "function_params": {
669
+ "patterns": [
670
+ {
671
+ "begin": "\\(",
672
+ "beginCaptures": {
673
+ "0": {
674
+ "name": "punctuation.definition.parameters.begin.bracket.round.coffee"
675
+ }
676
+ },
677
+ "end": "\\)",
678
+ "endCaptures": {
679
+ "0": {
680
+ "name": "punctuation.definition.parameters.end.bracket.round.coffee"
681
+ }
682
+ },
683
+ "name": "meta.parameters.coffee",
684
+ "patterns": [
685
+ {
686
+ "captures": {
687
+ "1": {
688
+ "name": "variable.parameter.function.coffee"
689
+ },
690
+ "2": {
691
+ "name": "keyword.operator.splat.coffee"
692
+ }
693
+ },
694
+ "match": "([a-zA-Z_$][\\w$]*)(\\.\\.\\.)?"
695
+ },
696
+ {
697
+ "captures": {
698
+ "1": {
699
+ "name": "variable.parameter.function.readwrite.instance.coffee"
700
+ },
701
+ "2": {
702
+ "name": "keyword.operator.splat.coffee"
703
+ }
704
+ },
705
+ "match": "(@(?:[a-zA-Z_$][\\w$]*)?)(\\.\\.\\.)?"
706
+ },
707
+ {
708
+ "include": "$self"
709
+ }
710
+ ]
711
+ }
712
+ ]
713
+ },
714
+ "heregexp": {
715
+ "patterns": [
716
+ {
717
+ "match": "\\\\[bB]|\\^|\\$",
718
+ "name": "keyword.control.anchor.regexp"
719
+ },
720
+ {
721
+ "match": "\\\\[1-9]\\d*",
722
+ "name": "keyword.other.back-reference.regexp"
723
+ },
724
+ {
725
+ "match": "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??",
726
+ "name": "keyword.operator.quantifier.regexp"
727
+ },
728
+ {
729
+ "match": "\\|",
730
+ "name": "keyword.operator.or.regexp"
731
+ },
732
+ {
733
+ "begin": "(\\()((\\?=)|(\\?!))",
734
+ "beginCaptures": {
735
+ "1": {
736
+ "name": "punctuation.definition.group.regexp"
737
+ },
738
+ "3": {
739
+ "name": "meta.assertion.look-ahead.regexp"
740
+ },
741
+ "4": {
742
+ "name": "meta.assertion.negative-look-ahead.regexp"
743
+ }
744
+ },
745
+ "end": "(\\))",
746
+ "endCaptures": {
747
+ "1": {
748
+ "name": "punctuation.definition.group.regexp"
749
+ }
750
+ },
751
+ "name": "meta.group.assertion.regexp",
752
+ "patterns": [
753
+ {
754
+ "include": "#heregexp"
755
+ }
756
+ ]
757
+ },
758
+ {
759
+ "begin": "\\((\\?:)?",
760
+ "beginCaptures": {
761
+ "0": {
762
+ "name": "punctuation.definition.group.regexp"
763
+ }
764
+ },
765
+ "end": "\\)",
766
+ "endCaptures": {
767
+ "0": {
768
+ "name": "punctuation.definition.group.regexp"
769
+ }
770
+ },
771
+ "name": "meta.group.regexp",
772
+ "patterns": [
773
+ {
774
+ "include": "#heregexp"
775
+ }
776
+ ]
777
+ },
778
+ {
779
+ "begin": "(\\[)(\\^)?",
780
+ "beginCaptures": {
781
+ "1": {
782
+ "name": "punctuation.definition.character-class.regexp"
783
+ },
784
+ "2": {
785
+ "name": "keyword.operator.negation.regexp"
786
+ }
787
+ },
788
+ "end": "(\\])",
789
+ "endCaptures": {
790
+ "1": {
791
+ "name": "punctuation.definition.character-class.regexp"
792
+ }
793
+ },
794
+ "name": "constant.other.character-class.set.regexp",
795
+ "patterns": [
796
+ {
797
+ "captures": {
798
+ "1": {
799
+ "name": "constant.character.numeric.regexp"
800
+ },
801
+ "2": {
802
+ "name": "constant.character.control.regexp"
803
+ },
804
+ "3": {
805
+ "name": "constant.character.escape.backslash.regexp"
806
+ },
807
+ "4": {
808
+ "name": "constant.character.numeric.regexp"
809
+ },
810
+ "5": {
811
+ "name": "constant.character.control.regexp"
812
+ },
813
+ "6": {
814
+ "name": "constant.character.escape.backslash.regexp"
815
+ }
816
+ },
817
+ "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])|(\\\\.))",
818
+ "name": "constant.other.character-class.range.regexp"
819
+ },
820
+ {
821
+ "include": "#regex-character-class"
822
+ }
823
+ ]
824
+ },
825
+ {
826
+ "include": "#regex-character-class"
827
+ },
828
+ {
829
+ "include": "#interpolated_coffee"
830
+ },
831
+ {
832
+ "include": "#embedded_comment"
833
+ }
834
+ ]
835
+ },
836
+ "instance_variable": {
837
+ "patterns": [
838
+ {
839
+ "match": "(@)([a-zA-Z_\\$]\\w*)?",
840
+ "name": "variable.other.readwrite.instance.coffee"
841
+ }
842
+ ]
843
+ },
844
+ "interpolated_coffee": {
845
+ "patterns": [
846
+ {
847
+ "begin": "\\#\\{",
848
+ "captures": {
849
+ "0": {
850
+ "name": "punctuation.section.embedded.coffee"
851
+ }
852
+ },
853
+ "end": "\\}",
854
+ "name": "source.coffee.embedded.source",
855
+ "patterns": [
856
+ {
857
+ "include": "$self"
858
+ }
859
+ ]
860
+ }
861
+ ]
862
+ },
863
+ "jsx": {
864
+ "patterns": [
865
+ {
866
+ "include": "#jsx-tag"
867
+ },
868
+ {
869
+ "include": "#jsx-end-tag"
870
+ }
871
+ ]
872
+ },
873
+ "jsx-attribute": {
874
+ "patterns": [
875
+ {
876
+ "captures": {
877
+ "1": {
878
+ "name": "entity.other.attribute-name.coffee"
879
+ },
880
+ "2": {
881
+ "name": "keyword.operator.assignment.coffee"
882
+ }
883
+ },
884
+ "match": "(?:^|\\s+)([-\\w.]+)\\s*(=)"
885
+ },
886
+ {
887
+ "include": "#double_quoted_string"
888
+ },
889
+ {
890
+ "include": "#single_quoted_string"
891
+ },
892
+ {
893
+ "include": "#jsx-expression"
894
+ }
895
+ ]
896
+ },
897
+ "jsx-end-tag": {
898
+ "patterns": [
899
+ {
900
+ "begin": "(</)([-\\w\\.]+)",
901
+ "beginCaptures": {
902
+ "1": {
903
+ "name": "punctuation.definition.tag.coffee"
904
+ },
905
+ "2": {
906
+ "name": "entity.name.tag.coffee"
907
+ }
908
+ },
909
+ "end": "(/?>)",
910
+ "name": "meta.tag.coffee"
911
+ }
912
+ ]
913
+ },
914
+ "jsx-expression": {
915
+ "begin": "{",
916
+ "beginCaptures": {
917
+ "0": {
918
+ "name": "meta.brace.curly.coffee"
919
+ }
920
+ },
921
+ "end": "}",
922
+ "endCaptures": {
923
+ "0": {
924
+ "name": "meta.brace.curly.coffee"
925
+ }
926
+ },
927
+ "patterns": [
928
+ {
929
+ "include": "#double_quoted_string"
930
+ },
931
+ {
932
+ "include": "$self"
933
+ }
934
+ ]
935
+ },
936
+ "jsx-tag": {
937
+ "patterns": [
938
+ {
939
+ "begin": "(<)([-\\w\\.]+)",
940
+ "beginCaptures": {
941
+ "1": {
942
+ "name": "punctuation.definition.tag.coffee"
943
+ },
944
+ "2": {
945
+ "name": "entity.name.tag.coffee"
946
+ }
947
+ },
948
+ "end": "(/?>)",
949
+ "name": "meta.tag.coffee",
950
+ "patterns": [
951
+ {
952
+ "include": "#jsx-attribute"
953
+ }
954
+ ]
955
+ }
956
+ ]
957
+ },
958
+ "method_calls": {
959
+ "patterns": [
960
+ {
961
+ "begin": "(?:(\\.)|(::))\\s*([\\w$]+)\\s*(?=\\()",
962
+ "beginCaptures": {
963
+ "1": {
964
+ "name": "punctuation.separator.method.period.coffee"
965
+ },
966
+ "2": {
967
+ "name": "keyword.operator.prototype.coffee"
968
+ },
969
+ "3": {
970
+ "patterns": [
971
+ {
972
+ "include": "#method_names"
973
+ }
974
+ ]
975
+ }
976
+ },
977
+ "end": "(?<=\\))",
978
+ "name": "meta.method-call.coffee",
979
+ "patterns": [
980
+ {
981
+ "include": "#arguments"
982
+ }
983
+ ]
984
+ },
985
+ {
986
+ "begin": "(?:(\\.)|(::))\\s*([\\w$]+)\\s*(?=\\s+(?!(?<![\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\w$]))(?=(@|@?[\\w$]+|[=-]>|\\-\\d|\\[|{|\"|')))",
987
+ "beginCaptures": {
988
+ "1": {
989
+ "name": "punctuation.separator.method.period.coffee"
990
+ },
991
+ "2": {
992
+ "name": "keyword.operator.prototype.coffee"
993
+ },
994
+ "3": {
995
+ "patterns": [
996
+ {
997
+ "include": "#method_names"
998
+ }
999
+ ]
1000
+ }
1001
+ },
1002
+ "end": "(?=\\s*(?<![\\w$])(of|in|then|is|isnt|and|or|for|else|when|if|unless|by|instanceof)(?![\\w$]))|(?=\\s*(}|\\]|\\)|#|$))",
1003
+ "name": "meta.method-call.coffee",
1004
+ "patterns": [
1005
+ {
1006
+ "include": "#arguments"
1007
+ }
1008
+ ]
1009
+ }
1010
+ ]
1011
+ },
1012
+ "method_names": {
1013
+ "patterns": [
1014
+ {
1015
+ "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",
1016
+ "name": "support.function.event-handler.coffee"
1017
+ },
1018
+ {
1019
+ "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",
1020
+ "name": "support.function.coffee"
1021
+ },
1022
+ {
1023
+ "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",
1024
+ "name": "support.function.dom.coffee"
1025
+ },
1026
+ {
1027
+ "match": "[a-zA-Z_$][\\w$]*",
1028
+ "name": "entity.name.function.coffee"
1029
+ },
1030
+ {
1031
+ "match": "\\d[\\w$]*",
1032
+ "name": "invalid.illegal.identifier.coffee"
1033
+ }
1034
+ ]
1035
+ },
1036
+ "numbers": {
1037
+ "patterns": [
1038
+ {
1039
+ "match": "\\b(?<!\\$)0(x|X)[0-9a-fA-F]+\\b(?!\\$)",
1040
+ "name": "constant.numeric.hex.coffee"
1041
+ },
1042
+ {
1043
+ "match": "\\b(?<!\\$)0(b|B)[01]+\\b(?!\\$)",
1044
+ "name": "constant.numeric.binary.coffee"
1045
+ },
1046
+ {
1047
+ "match": "\\b(?<!\\$)0(o|O)?[0-7]+\\b(?!\\$)",
1048
+ "name": "constant.numeric.octal.coffee"
1049
+ },
1050
+ {
1051
+ "captures": {
1052
+ "0": {
1053
+ "name": "constant.numeric.decimal.coffee"
1054
+ },
1055
+ "1": {
1056
+ "name": "punctuation.separator.decimal.period.coffee"
1057
+ },
1058
+ "2": {
1059
+ "name": "punctuation.separator.decimal.period.coffee"
1060
+ },
1061
+ "3": {
1062
+ "name": "punctuation.separator.decimal.period.coffee"
1063
+ },
1064
+ "4": {
1065
+ "name": "punctuation.separator.decimal.period.coffee"
1066
+ },
1067
+ "5": {
1068
+ "name": "punctuation.separator.decimal.period.coffee"
1069
+ },
1070
+ "6": {
1071
+ "name": "punctuation.separator.decimal.period.coffee"
1072
+ }
1073
+ },
1074
+ "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)(?!\\$)"
1075
+ }
1076
+ ]
1077
+ },
1078
+ "objects": {
1079
+ "patterns": [
1080
+ {
1081
+ "match": "[A-Z][A-Z0-9_$]*(?=\\s*\\??(\\.\\s*[a-zA-Z_$]\\w*|::))",
1082
+ "name": "constant.other.object.coffee"
1083
+ },
1084
+ {
1085
+ "match": "[a-zA-Z_$][\\w$]*(?=\\s*\\??(\\.\\s*[a-zA-Z_$]\\w*|::))",
1086
+ "name": "variable.other.object.coffee"
1087
+ }
1088
+ ]
1089
+ },
1090
+ "operators": {
1091
+ "patterns": [
1092
+ {
1093
+ "captures": {
1094
+ "1": {
1095
+ "name": "variable.assignment.coffee"
1096
+ },
1097
+ "2": {
1098
+ "name": "keyword.operator.assignment.compound.coffee"
1099
+ }
1100
+ },
1101
+ "match": "(?:([a-zA-Z$_][\\w$]*)?\\s+|(?<![\\w$]))(and=|or=)"
1102
+ },
1103
+ {
1104
+ "captures": {
1105
+ "1": {
1106
+ "name": "variable.assignment.coffee"
1107
+ },
1108
+ "2": {
1109
+ "name": "keyword.operator.assignment.compound.coffee"
1110
+ }
1111
+ },
1112
+ "match": "([a-zA-Z$_][\\w$]*)?\\s*(%=|\\+=|-=|\\*=|&&=|\\|\\|=|\\?=|(?<!\\()/=)"
1113
+ },
1114
+ {
1115
+ "captures": {
1116
+ "1": {
1117
+ "name": "variable.assignment.coffee"
1118
+ },
1119
+ "2": {
1120
+ "name": "keyword.operator.assignment.compound.bitwise.coffee"
1121
+ }
1122
+ },
1123
+ "match": "([a-zA-Z$_][\\w$]*)?\\s*(&=|\\^=|<<=|>>=|>>>=|\\|=)"
1124
+ },
1125
+ {
1126
+ "match": "<<|>>>|>>",
1127
+ "name": "keyword.operator.bitwise.shift.coffee"
1128
+ },
1129
+ {
1130
+ "match": "!=|<=|>=|==|<|>",
1131
+ "name": "keyword.operator.comparison.coffee"
1132
+ },
1133
+ {
1134
+ "match": "&&|!|\\|\\|",
1135
+ "name": "keyword.operator.logical.coffee"
1136
+ },
1137
+ {
1138
+ "match": "&|\\||\\^|~",
1139
+ "name": "keyword.operator.bitwise.coffee"
1140
+ },
1141
+ {
1142
+ "captures": {
1143
+ "1": {
1144
+ "name": "variable.assignment.coffee"
1145
+ },
1146
+ "2": {
1147
+ "name": "keyword.operator.assignment.coffee"
1148
+ }
1149
+ },
1150
+ "match": "([a-zA-Z$_][\\w$]*)?\\s*(=|:(?!:))(?![>=])"
1151
+ },
1152
+ {
1153
+ "match": "--",
1154
+ "name": "keyword.operator.decrement.coffee"
1155
+ },
1156
+ {
1157
+ "match": "\\+\\+",
1158
+ "name": "keyword.operator.increment.coffee"
1159
+ },
1160
+ {
1161
+ "match": "\\.\\.\\.",
1162
+ "name": "keyword.operator.splat.coffee"
1163
+ },
1164
+ {
1165
+ "match": "\\?",
1166
+ "name": "keyword.operator.existential.coffee"
1167
+ },
1168
+ {
1169
+ "match": "%|\\*|/|-|\\+",
1170
+ "name": "keyword.operator.coffee"
1171
+ },
1172
+ {
1173
+ "captures": {
1174
+ "1": {
1175
+ "name": "keyword.operator.logical.coffee"
1176
+ },
1177
+ "2": {
1178
+ "name": "keyword.operator.comparison.coffee"
1179
+ }
1180
+ },
1181
+ "match": "(?x)\n\\b(?<![\\.\\$])\n(?:\n (and|or|not) # logical\n |\n (is|isnt) # comparison\n)\n(?!\\s*:)\\b"
1182
+ }
1183
+ ]
1184
+ },
1185
+ "properties": {
1186
+ "patterns": [
1187
+ {
1188
+ "captures": {
1189
+ "1": {
1190
+ "name": "punctuation.separator.property.period.coffee"
1191
+ },
1192
+ "2": {
1193
+ "name": "keyword.operator.prototype.coffee"
1194
+ },
1195
+ "3": {
1196
+ "name": "constant.other.object.property.coffee"
1197
+ }
1198
+ },
1199
+ "match": "(?:(\\.)|(::))\\s*([A-Z][A-Z0-9_$]*\\b\\$*)(?=\\s*\\??(\\.\\s*[a-zA-Z_$]\\w*|::))"
1200
+ },
1201
+ {
1202
+ "captures": {
1203
+ "1": {
1204
+ "name": "punctuation.separator.property.period.coffee"
1205
+ },
1206
+ "2": {
1207
+ "name": "keyword.operator.prototype.coffee"
1208
+ },
1209
+ "3": {
1210
+ "name": "variable.other.object.property.coffee"
1211
+ }
1212
+ },
1213
+ "match": "(?:(\\.)|(::))\\s*(\\$*[a-zA-Z_$][\\w$]*)(?=\\s*\\??(\\.\\s*[a-zA-Z_$]\\w*|::))"
1214
+ },
1215
+ {
1216
+ "captures": {
1217
+ "1": {
1218
+ "name": "punctuation.separator.property.period.coffee"
1219
+ },
1220
+ "2": {
1221
+ "name": "keyword.operator.prototype.coffee"
1222
+ },
1223
+ "3": {
1224
+ "name": "constant.other.property.coffee"
1225
+ }
1226
+ },
1227
+ "match": "(?:(\\.)|(::))\\s*([A-Z][A-Z0-9_$]*\\b\\$*)"
1228
+ },
1229
+ {
1230
+ "captures": {
1231
+ "1": {
1232
+ "name": "punctuation.separator.property.period.coffee"
1233
+ },
1234
+ "2": {
1235
+ "name": "keyword.operator.prototype.coffee"
1236
+ },
1237
+ "3": {
1238
+ "name": "variable.other.property.coffee"
1239
+ }
1240
+ },
1241
+ "match": "(?:(\\.)|(::))\\s*(\\$*[a-zA-Z_$][\\w$]*)"
1242
+ },
1243
+ {
1244
+ "captures": {
1245
+ "1": {
1246
+ "name": "punctuation.separator.property.period.coffee"
1247
+ },
1248
+ "2": {
1249
+ "name": "keyword.operator.prototype.coffee"
1250
+ },
1251
+ "3": {
1252
+ "name": "invalid.illegal.identifier.coffee"
1253
+ }
1254
+ },
1255
+ "match": "(?:(\\.)|(::))\\s*([0-9][\\w$]*)"
1256
+ }
1257
+ ]
1258
+ },
1259
+ "regex-character-class": {
1260
+ "patterns": [
1261
+ {
1262
+ "match": "\\\\[wWsSdD]|\\.",
1263
+ "name": "constant.character.character-class.regexp"
1264
+ },
1265
+ {
1266
+ "match": "\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})",
1267
+ "name": "constant.character.numeric.regexp"
1268
+ },
1269
+ {
1270
+ "match": "\\\\c[A-Z]",
1271
+ "name": "constant.character.control.regexp"
1272
+ },
1273
+ {
1274
+ "match": "\\\\.",
1275
+ "name": "constant.character.escape.backslash.regexp"
1276
+ }
1277
+ ]
1278
+ },
1279
+ "single_quoted_string": {
1280
+ "patterns": [
1281
+ {
1282
+ "begin": "'",
1283
+ "beginCaptures": {
1284
+ "0": {
1285
+ "name": "punctuation.definition.string.begin.coffee"
1286
+ }
1287
+ },
1288
+ "end": "'",
1289
+ "endCaptures": {
1290
+ "0": {
1291
+ "name": "punctuation.definition.string.end.coffee"
1292
+ }
1293
+ },
1294
+ "name": "string.quoted.single.coffee",
1295
+ "patterns": [
1296
+ {
1297
+ "captures": {
1298
+ "1": {
1299
+ "name": "punctuation.definition.escape.backslash.coffee"
1300
+ }
1301
+ },
1302
+ "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]?|.)",
1303
+ "name": "constant.character.escape.backslash.coffee"
1304
+ }
1305
+ ]
1306
+ }
1307
+ ]
1308
+ }
1309
+ },
1310
+ "scopeName": "source.coffee"
1311
+ }