@jupyterlab/codemirror 4.0.0-alpha.2 → 4.0.0-alpha.21

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 (78) hide show
  1. package/lib/codemirror-ipythongfm.d.ts +9 -3
  2. package/lib/codemirror-ipythongfm.js +52 -30
  3. package/lib/codemirror-ipythongfm.js.map +1 -1
  4. package/lib/commands.d.ts +13 -0
  5. package/lib/commands.js +32 -0
  6. package/lib/commands.js.map +1 -0
  7. package/lib/editor.d.ts +48 -279
  8. package/lib/editor.js +220 -818
  9. package/lib/editor.js.map +1 -1
  10. package/lib/extension.d.ts +236 -0
  11. package/lib/extension.js +696 -0
  12. package/lib/extension.js.map +1 -0
  13. package/lib/extensions/customStyle.d.ts +25 -0
  14. package/lib/extensions/customStyle.js +51 -0
  15. package/lib/extensions/customStyle.js.map +1 -0
  16. package/lib/extensions/index.d.ts +3 -0
  17. package/lib/extensions/index.js +8 -0
  18. package/lib/extensions/index.js.map +1 -0
  19. package/lib/extensions/rulers.d.ts +8 -0
  20. package/lib/extensions/rulers.js +85 -0
  21. package/lib/extensions/rulers.js.map +1 -0
  22. package/lib/extensions/ybinding.d.ts +129 -0
  23. package/lib/extensions/ybinding.js +229 -0
  24. package/lib/extensions/ybinding.js.map +1 -0
  25. package/lib/factory.d.ts +15 -5
  26. package/lib/factory.js +53 -24
  27. package/lib/factory.js.map +1 -1
  28. package/lib/index.d.ts +7 -19
  29. package/lib/index.js +7 -23
  30. package/lib/index.js.map +1 -1
  31. package/lib/language.d.ts +96 -0
  32. package/lib/language.js +1690 -0
  33. package/lib/language.js.map +1 -0
  34. package/lib/mimetype.d.ts +3 -0
  35. package/lib/mimetype.js +16 -5
  36. package/lib/mimetype.js.map +1 -1
  37. package/lib/searchprovider.d.ts +219 -0
  38. package/lib/searchprovider.js +640 -0
  39. package/lib/searchprovider.js.map +1 -0
  40. package/lib/theme.d.ts +57 -0
  41. package/lib/theme.js +194 -0
  42. package/lib/theme.js.map +1 -0
  43. package/lib/token.d.ts +375 -0
  44. package/lib/token.js +18 -0
  45. package/lib/token.js.map +1 -0
  46. package/package.json +45 -41
  47. package/src/codemirror-ipythongfm.ts +109 -0
  48. package/src/commands.ts +34 -0
  49. package/src/editor.ts +783 -0
  50. package/src/extension.ts +890 -0
  51. package/src/extensions/customStyle.ts +79 -0
  52. package/src/extensions/index.ts +8 -0
  53. package/src/extensions/rulers.ts +112 -0
  54. package/src/extensions/ybinding.ts +295 -0
  55. package/src/factory.ts +100 -0
  56. package/src/index.ts +17 -0
  57. package/src/language.ts +1729 -0
  58. package/src/mimetype.ts +54 -0
  59. package/src/searchprovider.ts +813 -0
  60. package/src/theme.ts +219 -0
  61. package/src/token.ts +436 -0
  62. package/src/typings.d.ts +13 -0
  63. package/style/base.css +34 -162
  64. package/style/index.css +1 -7
  65. package/style/index.js +1 -7
  66. package/lib/codemirror-ipython.d.ts +0 -2
  67. package/lib/codemirror-ipython.js +0 -30
  68. package/lib/codemirror-ipython.js.map +0 -1
  69. package/lib/mode.d.ts +0 -81
  70. package/lib/mode.js +0 -149
  71. package/lib/mode.js.map +0 -1
  72. package/lib/syntaxstatus.d.ts +0 -67
  73. package/lib/syntaxstatus.js +0 -140
  74. package/lib/syntaxstatus.js.map +0 -1
  75. package/lib/tokens.d.ts +0 -18
  76. package/lib/tokens.js +0 -9
  77. package/lib/tokens.js.map +0 -1
  78. package/typings/codemirror/codemirror.d.ts +0 -227
@@ -0,0 +1,1690 @@
1
+ // Copyright (c) Jupyter Development Team.
2
+ // Distributed under the terms of the Modified BSD License.
3
+ import { IEditorMimeTypeService } from '@jupyterlab/codeeditor';
4
+ import { PathExt } from '@jupyterlab/coreutils';
5
+ import { LanguageDescription, LanguageSupport, LRLanguage, StreamLanguage } from '@codemirror/language';
6
+ import { highlightTree } from '@lezer/highlight';
7
+ // This ensures the language spec for python will be loaded when
8
+ // we instantiate a new editor instance, which is required since
9
+ // python is the default language and we don't want to split
10
+ // the editor constructor because of asynchronous loading.
11
+ import { python } from '@codemirror/lang-python';
12
+ import { jupyterHighlightStyle } from './theme';
13
+ import { buildParser } from '@lezer/generator';
14
+ import { nullTranslator } from '@jupyterlab/translation';
15
+ /**
16
+ * CodeMirror language registry
17
+ */
18
+ export class EditorLanguageRegistry {
19
+ constructor() {
20
+ this._modeList = [];
21
+ // Add default language text/plain -> No expressions to parse
22
+ this.addLanguage({
23
+ name: 'none',
24
+ mime: 'text/plain',
25
+ support: new LanguageSupport(
26
+ // Create a dummy parser that as no expression to parse
27
+ LRLanguage.define({ parser: buildParser('@top Program { }') }))
28
+ });
29
+ }
30
+ /**
31
+ * Register a new language for CodeMirror
32
+ *
33
+ * @param language Language to register
34
+ */
35
+ addLanguage(language) {
36
+ var _a;
37
+ const info = (_a = this.findByName(language.name)) !== null && _a !== void 0 ? _a : this.findByMIME(language.mime, true);
38
+ if (info) {
39
+ throw new Error(`${language.mime} already registered`);
40
+ }
41
+ this._modeList.push(this.makeSpec(language));
42
+ }
43
+ /**
44
+ * Ensure a codemirror mode is available by name or Codemirror spec.
45
+ *
46
+ * @param language - The mode to ensure. If it is a string, uses [findBest]
47
+ * to get the appropriate spec.
48
+ *
49
+ * @returns A promise that resolves when the mode is available.
50
+ */
51
+ async getLanguage(language) {
52
+ const spec = this.findBest(language);
53
+ if (spec && !spec.support) {
54
+ spec.support = await spec.load();
55
+ }
56
+ return spec;
57
+ }
58
+ /**
59
+ * Get the raw list of available modes specs.
60
+ *
61
+ * @returns The available modes
62
+ */
63
+ getLanguages() {
64
+ return [...this._modeList];
65
+ }
66
+ /**
67
+ * Find a codemirror mode by MIME.
68
+ *
69
+ * @param mime Mime type to look for
70
+ * @param strict Whether xml and json should be assimilated to the generic mimetype
71
+ * @returns The mode or null
72
+ */
73
+ findByMIME(mime, strict = false) {
74
+ if (Array.isArray(mime)) {
75
+ for (let i = 0; i < mime.length; i++) {
76
+ const spec = this.findByMIME(mime[i]);
77
+ if (spec)
78
+ return spec;
79
+ }
80
+ return null;
81
+ }
82
+ mime = mime.toLowerCase();
83
+ for (let i = 0; i < this._modeList.length; i++) {
84
+ let info = this._modeList[i];
85
+ if (Array.isArray(info.mime)) {
86
+ for (let j = 0; j < info.mime.length; j++) {
87
+ if (info.mime[j] == mime) {
88
+ return info;
89
+ }
90
+ }
91
+ }
92
+ else if (info.mime == mime) {
93
+ return info;
94
+ }
95
+ }
96
+ if (!strict) {
97
+ if (/\+xml$/.test(mime))
98
+ return this.findByMIME('application/xml');
99
+ if (/\+json$/.test(mime))
100
+ return this.findByMIME('application/json');
101
+ }
102
+ return null;
103
+ }
104
+ /**
105
+ * Find a codemirror mode by name.
106
+ *
107
+ * @param name The mode name
108
+ * @returns The mode or null
109
+ */
110
+ findByName(name) {
111
+ name = name.toLowerCase();
112
+ for (let i = 0; i < this._modeList.length; i++) {
113
+ let info = this._modeList[i];
114
+ if (info.name.toLowerCase() == name)
115
+ return info;
116
+ if (info.alias) {
117
+ for (let j = 0; j < info.alias.length; j++) {
118
+ if (info.alias[j].toLowerCase() == name) {
119
+ return info;
120
+ }
121
+ }
122
+ }
123
+ }
124
+ return null;
125
+ }
126
+ /**
127
+ * Find a codemirror mode by extension.
128
+ *
129
+ * @param ext The extension name
130
+ * @returns The mode or null
131
+ */
132
+ findByExtension(ext) {
133
+ if (Array.isArray(ext)) {
134
+ for (let i = 0; i < ext.length; i++) {
135
+ const spec = this.findByExtension(ext[i]);
136
+ if (spec)
137
+ return spec;
138
+ }
139
+ return null;
140
+ }
141
+ ext = ext.toLowerCase();
142
+ for (let i = 0; i < this._modeList.length; i++) {
143
+ let info = this._modeList[i];
144
+ for (let j = 0; j < info.extensions.length; j++) {
145
+ if (info.extensions[j].toLowerCase() == ext) {
146
+ return info;
147
+ }
148
+ }
149
+ }
150
+ return null;
151
+ }
152
+ /**
153
+ * Find a codemirror mode by filename.
154
+ *
155
+ * @param name File name
156
+ * @returns The mode or null
157
+ */
158
+ findByFileName(name) {
159
+ const basename = PathExt.basename(name);
160
+ for (let i = 0; i < this._modeList.length; i++) {
161
+ let info = this._modeList[i];
162
+ if (info.filename && info.filename.test(basename)) {
163
+ return info;
164
+ }
165
+ }
166
+ let dot = basename.lastIndexOf('.');
167
+ let ext = dot > -1 && basename.substring(dot + 1, basename.length);
168
+ if (ext) {
169
+ return this.findByExtension(ext);
170
+ }
171
+ return null;
172
+ }
173
+ /**
174
+ * Find a codemirror mode by name or CodeMirror spec.
175
+ *
176
+ * @param language The CodeMirror mode
177
+ * @param fallback Whether to fallback to default mimetype spec or not
178
+ * @returns The mode or null
179
+ */
180
+ findBest(language, fallback = true) {
181
+ var _a, _b, _c, _d;
182
+ const modename = typeof language === 'string' ? language : language.name;
183
+ const mimetype = typeof language !== 'string' ? language.mime : modename;
184
+ const ext = typeof language !== 'string' ? (_a = language.extensions) !== null && _a !== void 0 ? _a : [] : [];
185
+ return ((_d = (_c = (_b = (modename ? this.findByName(modename) : null)) !== null && _b !== void 0 ? _b : (mimetype ? this.findByMIME(mimetype) : null)) !== null && _c !== void 0 ? _c : this.findByExtension(ext)) !== null && _d !== void 0 ? _d : (fallback
186
+ ? this.findByMIME(IEditorMimeTypeService.defaultMimeType)
187
+ : null));
188
+ }
189
+ /**
190
+ * Parse and style a string.
191
+ *
192
+ * @param code Code to highlight
193
+ * @param language Code language
194
+ * @param el HTML element into which the highlighted code will be inserted
195
+ */
196
+ async highlight(code, language, el) {
197
+ var _a;
198
+ if (language) {
199
+ await this.getLanguage(language);
200
+ }
201
+ const language_ = (_a = language === null || language === void 0 ? void 0 : language.support) === null || _a === void 0 ? void 0 : _a.language;
202
+ if (!language_) {
203
+ el.appendChild(document.createTextNode(code));
204
+ return;
205
+ }
206
+ const tree = language_.parser.parse(code);
207
+ // position state required because unstyled tokens are not emitted
208
+ // in highlightTree
209
+ let pos = 0;
210
+ highlightTree(tree, jupyterHighlightStyle, (from, to, classes) => {
211
+ if (from > pos) {
212
+ // No style applied to the token between pos and from
213
+ el.appendChild(document.createTextNode(code.slice(pos, from)));
214
+ }
215
+ const sp = el.appendChild(document.createElement('span'));
216
+ sp.className = classes;
217
+ sp.appendChild(document.createTextNode(code.slice(from, to)));
218
+ pos = to;
219
+ });
220
+ if (pos < tree.length - 1) {
221
+ // No style applied on the trailing text
222
+ el.appendChild(document.createTextNode(code.slice(pos, tree.length)));
223
+ }
224
+ }
225
+ // Code mirror uses two similar structures, a plain object with optional fields,
226
+ // and a class with the same fields but all mandatory. Maybe adopting the same
227
+ // pattern would be less confusing (although far more verbose)
228
+ makeSpec(spec) {
229
+ let res = LanguageDescription.of(spec);
230
+ // CodeMirror does not store/use mime type of a language
231
+ res.mime = spec.mime;
232
+ res.displayName = spec.displayName;
233
+ return res;
234
+ }
235
+ }
236
+ /**
237
+ * EditorLanguageRegistry namespace
238
+ */
239
+ (function (EditorLanguageRegistry) {
240
+ /**
241
+ * Convert an CodeMirror 5 language parser to CodeMirror 6
242
+ *
243
+ * @param parser Legacy parser
244
+ * @returns Language object
245
+ */
246
+ function legacy(parser) {
247
+ return new LanguageSupport(StreamLanguage.define(parser));
248
+ }
249
+ EditorLanguageRegistry.legacy = legacy;
250
+ /**
251
+ * Create a dialect of SQL
252
+ *
253
+ * @param dialectName SQL dialect
254
+ * @returns Language object
255
+ */
256
+ async function sql(dialectName) {
257
+ const m = await import('@codemirror/lang-sql');
258
+ return m.sql({ dialect: m[dialectName] });
259
+ }
260
+ /**
261
+ * Get the default editor languages
262
+ *
263
+ * @param translator Application translator
264
+ * @returns Default CodeMirror 6 languages
265
+ */
266
+ function getDefaultLanguages(translator) {
267
+ const trans = (translator !== null && translator !== void 0 ? translator : nullTranslator).load('jupyterlab');
268
+ return [
269
+ {
270
+ name: 'C',
271
+ displayName: trans.__('C'),
272
+ mime: 'text/x-csrc',
273
+ extensions: ['c', 'h', 'ino'],
274
+ async load() {
275
+ const m = await import('@codemirror/lang-cpp');
276
+ return m.cpp();
277
+ }
278
+ },
279
+ {
280
+ name: 'C++',
281
+ displayName: trans.__('C++'),
282
+ mime: 'text/x-c++src',
283
+ extensions: ['cpp', 'c++', 'cc', 'cxx', 'hpp', 'h++', 'hh', 'hxx'],
284
+ async load() {
285
+ const m = await import('@codemirror/lang-cpp');
286
+ return m.cpp();
287
+ }
288
+ },
289
+ {
290
+ name: 'CQL',
291
+ displayName: trans.__('CQL'),
292
+ mime: 'text/x-cassandra',
293
+ extensions: ['cql'],
294
+ load() {
295
+ return sql('Cassandra');
296
+ }
297
+ },
298
+ {
299
+ name: 'CSS',
300
+ displayName: trans.__('CSS'),
301
+ mime: 'text/css',
302
+ extensions: ['css'],
303
+ async load() {
304
+ const m = await import('@codemirror/lang-css');
305
+ return m.css();
306
+ }
307
+ },
308
+ {
309
+ name: 'HTML',
310
+ displayName: trans.__('HTML'),
311
+ alias: ['xhtml'],
312
+ mime: 'text/html',
313
+ extensions: ['html', 'htm', 'handlebars', 'hbs'],
314
+ async load() {
315
+ const m = await import('@codemirror/lang-html');
316
+ return m.html();
317
+ }
318
+ },
319
+ {
320
+ name: 'Java',
321
+ displayName: trans.__('Java'),
322
+ mime: 'text/x-java',
323
+ extensions: ['java'],
324
+ async load() {
325
+ const m = await import('@codemirror/lang-java');
326
+ return m.java();
327
+ }
328
+ },
329
+ {
330
+ name: 'Javascript',
331
+ displayName: trans.__('Javascript'),
332
+ alias: ['ecmascript', 'js', 'node'],
333
+ mime: [
334
+ 'text/javascript',
335
+ 'text/ecmascript',
336
+ 'application/javascript',
337
+ 'application/x-javascript',
338
+ 'application/ecmascript'
339
+ ],
340
+ extensions: ['js', 'mjs', 'cjs'],
341
+ async load() {
342
+ const m = await import('@codemirror/lang-javascript');
343
+ return m.javascript();
344
+ }
345
+ },
346
+ {
347
+ name: 'JSON',
348
+ displayName: trans.__('JSON'),
349
+ alias: ['json5'],
350
+ mime: ['application/json', 'application/x-json'],
351
+ extensions: ['json', 'map'],
352
+ async load() {
353
+ const m = await import('@codemirror/lang-json');
354
+ return m.json();
355
+ }
356
+ },
357
+ {
358
+ name: 'JSX',
359
+ displayName: trans.__('JSX'),
360
+ mime: 'text/jsx',
361
+ extensions: ['jsx'],
362
+ async load() {
363
+ const m = await import('@codemirror/lang-javascript');
364
+ return m.javascript({ jsx: true });
365
+ }
366
+ },
367
+ {
368
+ name: 'MariaDB SQL',
369
+ displayName: trans.__('MariaDB SQL'),
370
+ mime: 'text/x-mariadb',
371
+ load() {
372
+ return sql('MariaSQL');
373
+ }
374
+ },
375
+ {
376
+ name: 'Markdown',
377
+ displayName: trans.__('Markdown'),
378
+ mime: 'text/x-markdown',
379
+ extensions: ['md', 'markdown', 'mkd'],
380
+ async load() {
381
+ const m = await import('@codemirror/lang-markdown');
382
+ return m.markdown({ codeLanguages: this._modeList });
383
+ }
384
+ },
385
+ {
386
+ name: 'MS SQL',
387
+ displayName: trans.__('MS SQL'),
388
+ mime: 'text/x-mssql',
389
+ load() {
390
+ return sql('MSSQL');
391
+ }
392
+ },
393
+ {
394
+ name: 'MySQL',
395
+ displayName: trans.__('MySQL'),
396
+ mime: 'text/x-mysql',
397
+ load() {
398
+ return sql('MySQL');
399
+ }
400
+ },
401
+ {
402
+ name: 'PHP',
403
+ displayName: trans.__('PHP'),
404
+ mime: [
405
+ 'text/x-php',
406
+ 'application/x-httpd-php',
407
+ 'application/x-httpd-php-open'
408
+ ],
409
+ extensions: ['php', 'php3', 'php4', 'php5', 'php7', 'phtml'],
410
+ async load() {
411
+ const m = await import('@codemirror/lang-php');
412
+ return m.php();
413
+ }
414
+ },
415
+ {
416
+ name: 'PLSQL',
417
+ displayName: trans.__('PLSQL'),
418
+ mime: 'text/x-plsql',
419
+ extensions: ['pls'],
420
+ load() {
421
+ return sql('PLSQL');
422
+ }
423
+ },
424
+ {
425
+ name: 'PostgreSQL',
426
+ displayName: trans.__('PostgreSQL'),
427
+ mime: 'text/x-pgsql',
428
+ load() {
429
+ return sql('PostgreSQL');
430
+ }
431
+ },
432
+ {
433
+ name: 'Python',
434
+ displayName: trans.__('Python'),
435
+ mime: 'text/x-python',
436
+ extensions: ['BUILD', 'bzl', 'py', 'pyw'],
437
+ filename: /^(BUCK|BUILD)$/,
438
+ load() {
439
+ return Promise.resolve(python());
440
+ }
441
+ },
442
+ {
443
+ name: 'ipython',
444
+ displayName: trans.__('ipython'),
445
+ mime: 'text/x-ipython',
446
+ load: () => {
447
+ // FIXME Restore '?' operator - using the default python LanguageSupport allows
448
+ // to activate feature such as code folding.
449
+ // return Promise.resolve(legacy(mkPython({ singleOperators: /\?/ })));
450
+ return Promise.resolve(python());
451
+ }
452
+ },
453
+ {
454
+ name: 'Rust',
455
+ displayName: trans.__('Rust'),
456
+ mime: 'text/x-rustsrc',
457
+ extensions: ['rs'],
458
+ async load() {
459
+ const m = await import('@codemirror/lang-rust');
460
+ return m.rust();
461
+ }
462
+ },
463
+ {
464
+ name: 'SQL',
465
+ displayName: trans.__('SQL'),
466
+ mime: 'text/x-sql',
467
+ extensions: ['sql'],
468
+ load() {
469
+ return sql('StandardSQL');
470
+ }
471
+ },
472
+ {
473
+ name: 'SQLite',
474
+ displayName: trans.__('SQLite'),
475
+ mime: 'text/x-sqlite',
476
+ load() {
477
+ return sql('SQLite');
478
+ }
479
+ },
480
+ {
481
+ name: 'TSX',
482
+ displayName: trans.__('TSX'),
483
+ alias: ['TypeScript-JSX'],
484
+ mime: 'text/typescript-jsx',
485
+ extensions: ['tsx'],
486
+ async load() {
487
+ const m = await import('@codemirror/lang-javascript');
488
+ return m.javascript({ jsx: true, typescript: true });
489
+ }
490
+ },
491
+ {
492
+ name: 'TypeScript',
493
+ displayName: trans.__('TypeScript'),
494
+ alias: ['ts'],
495
+ mime: 'application/typescript',
496
+ extensions: ['ts'],
497
+ async load() {
498
+ const m = await import('@codemirror/lang-javascript');
499
+ return m.javascript({ typescript: true });
500
+ }
501
+ },
502
+ {
503
+ name: 'WebAssembly',
504
+ displayName: trans.__('WebAssembly'),
505
+ mime: 'text/webassembly',
506
+ extensions: ['wat', 'wast'],
507
+ async load() {
508
+ const m = await import('@codemirror/lang-wast');
509
+ return m.wast();
510
+ }
511
+ },
512
+ {
513
+ name: 'XML',
514
+ displayName: trans.__('XML'),
515
+ alias: ['rss', 'wsdl', 'xsd'],
516
+ mime: ['application/xml', 'text/xml'],
517
+ extensions: ['xml', 'xsl', 'xsd', 'svg'],
518
+ async load() {
519
+ const m = await import('@codemirror/lang-xml');
520
+ return m.xml();
521
+ }
522
+ },
523
+ // Legacy modes ported from CodeMirror 5
524
+ {
525
+ name: 'APL',
526
+ displayName: trans.__('APL'),
527
+ mime: 'text/apl',
528
+ extensions: ['dyalog', 'apl'],
529
+ async load() {
530
+ const m = await import('@codemirror/legacy-modes/mode/apl');
531
+ return legacy(m.apl);
532
+ }
533
+ },
534
+ {
535
+ name: 'PGP',
536
+ displayName: trans.__('PGP'),
537
+ alias: ['asciiarmor'],
538
+ mime: [
539
+ 'application/pgp',
540
+ 'application/pgp-encrypted',
541
+ 'application/pgp-keys',
542
+ 'application/pgp-signature'
543
+ ],
544
+ extensions: ['asc', 'pgp', 'sig'],
545
+ async load() {
546
+ const m = await import('@codemirror/legacy-modes/mode/asciiarmor');
547
+ return legacy(m.asciiArmor);
548
+ }
549
+ },
550
+ {
551
+ name: 'ASN.1',
552
+ displayName: trans.__('ASN.1'),
553
+ mime: 'text/x-ttcn-asn',
554
+ extensions: ['asn', 'asn1'],
555
+ async load() {
556
+ const m = await import('@codemirror/legacy-modes/mode/asn1');
557
+ return legacy(m.asn1({}));
558
+ }
559
+ },
560
+ {
561
+ name: 'Asterisk',
562
+ displayName: trans.__('Asterisk'),
563
+ mime: 'text/x-asterisk',
564
+ filename: /^extensions\.conf$/i,
565
+ async load() {
566
+ const m = await import('@codemirror/legacy-modes/mode/asterisk');
567
+ return legacy(m.asterisk);
568
+ }
569
+ },
570
+ {
571
+ name: 'Brainfuck',
572
+ displayName: trans.__('Brainfuck'),
573
+ mime: 'text/x-brainfuck',
574
+ extensions: ['b', 'bf'],
575
+ async load() {
576
+ const m = await import('@codemirror/legacy-modes/mode/brainfuck');
577
+ return legacy(m.brainfuck);
578
+ }
579
+ },
580
+ {
581
+ name: 'Cobol',
582
+ displayName: trans.__('Cobol'),
583
+ mime: 'text/x-cobol',
584
+ extensions: ['cob', 'cpy'],
585
+ async load() {
586
+ const m = await import('@codemirror/legacy-modes/mode/cobol');
587
+ return legacy(m.cobol);
588
+ }
589
+ },
590
+ {
591
+ name: 'C#',
592
+ displayName: trans.__('C#'),
593
+ alias: ['csharp', 'cs'],
594
+ mime: 'text/x-csharp',
595
+ extensions: ['cs'],
596
+ async load() {
597
+ const m = await import('@codemirror/legacy-modes/mode/clike');
598
+ return legacy(m.csharp);
599
+ }
600
+ },
601
+ {
602
+ name: 'Clojure',
603
+ displayName: trans.__('Clojure'),
604
+ mime: 'text/x-clojure',
605
+ extensions: ['clj', 'cljc', 'cljx'],
606
+ async load() {
607
+ const m = await import('@codemirror/legacy-modes/mode/clojure');
608
+ return legacy(m.clojure);
609
+ }
610
+ },
611
+ {
612
+ name: 'ClojureScript',
613
+ displayName: trans.__('ClojureScript'),
614
+ mime: 'text/x-clojurescript',
615
+ extensions: ['cljs'],
616
+ async load() {
617
+ const m = await import('@codemirror/legacy-modes/mode/clojure');
618
+ return legacy(m.clojure);
619
+ }
620
+ },
621
+ {
622
+ name: 'Closure Stylesheets (GSS)',
623
+ displayName: trans.__('Closure Stylesheets (GSS)'),
624
+ mime: 'text/x-gss',
625
+ extensions: ['gss'],
626
+ async load() {
627
+ const m = await import('@codemirror/legacy-modes/mode/css');
628
+ return legacy(m.gss);
629
+ }
630
+ },
631
+ {
632
+ name: 'CMake',
633
+ displayName: trans.__('CMake'),
634
+ mime: 'text/x-cmake',
635
+ extensions: ['cmake', 'cmake.in'],
636
+ filename: /^CMakeLists\.txt$/,
637
+ async load() {
638
+ const m = await import('@codemirror/legacy-modes/mode/cmake');
639
+ return legacy(m.cmake);
640
+ }
641
+ },
642
+ {
643
+ name: 'CoffeeScript',
644
+ displayName: trans.__('CoffeScript'),
645
+ alias: ['coffee', 'coffee-script'],
646
+ mime: [
647
+ 'application/vnd.coffeescript',
648
+ 'text/coffeescript',
649
+ 'text/x-coffeescript'
650
+ ],
651
+ extensions: ['coffee'],
652
+ async load() {
653
+ const m = await import('@codemirror/legacy-modes/mode/coffeescript');
654
+ return legacy(m.coffeeScript);
655
+ }
656
+ },
657
+ {
658
+ name: 'Common Lisp',
659
+ displayName: trans.__('Common Lisp'),
660
+ alias: ['lisp'],
661
+ mime: 'text/x-common-lisp',
662
+ extensions: ['cl', 'lisp', 'el'],
663
+ async load() {
664
+ const m = await import('@codemirror/legacy-modes/mode/commonlisp');
665
+ return legacy(m.commonLisp);
666
+ }
667
+ },
668
+ {
669
+ name: 'Cypher',
670
+ displayName: trans.__('Cypher'),
671
+ mime: 'application/x-cypher-query',
672
+ extensions: ['cyp', 'cypher'],
673
+ async load() {
674
+ const m = await import('@codemirror/legacy-modes/mode/cypher');
675
+ return legacy(m.cypher);
676
+ }
677
+ },
678
+ {
679
+ name: 'Cython',
680
+ displayName: trans.__('Cython'),
681
+ mime: 'text/x-cython',
682
+ extensions: ['pyx', 'pxd', 'pxi'],
683
+ async load() {
684
+ const m = await import('@codemirror/legacy-modes/mode/python');
685
+ return legacy(m.cython);
686
+ }
687
+ },
688
+ {
689
+ name: 'Crystal',
690
+ displayName: trans.__('Crystal'),
691
+ mime: 'text/x-crystal',
692
+ extensions: ['cr'],
693
+ async load() {
694
+ const m = await import('@codemirror/legacy-modes/mode/crystal');
695
+ return legacy(m.crystal);
696
+ }
697
+ },
698
+ {
699
+ name: 'D',
700
+ displayName: trans.__('D'),
701
+ mime: 'text/x-d',
702
+ extensions: ['d'],
703
+ async load() {
704
+ const m = await import('@codemirror/legacy-modes/mode/d');
705
+ return legacy(m.d);
706
+ }
707
+ },
708
+ {
709
+ name: 'Dart',
710
+ displayName: trans.__('Dart'),
711
+ mime: ['application/dart', 'text/x-dart'],
712
+ extensions: ['dart'],
713
+ async load() {
714
+ const m = await import('@codemirror/legacy-modes/mode/clike');
715
+ return legacy(m.dart);
716
+ }
717
+ },
718
+ {
719
+ name: 'diff',
720
+ displayName: trans.__('diff'),
721
+ mime: 'text/x-diff',
722
+ extensions: ['diff', 'patch'],
723
+ async load() {
724
+ const m = await import('@codemirror/legacy-modes/mode/diff');
725
+ return legacy(m.diff);
726
+ }
727
+ },
728
+ {
729
+ name: 'Dockerfile',
730
+ displayName: trans.__('Dockerfile'),
731
+ mime: 'text/x-dockerfile',
732
+ filename: /^Dockerfile$/,
733
+ async load() {
734
+ const m = await import('@codemirror/legacy-modes/mode/dockerfile');
735
+ return legacy(m.dockerFile);
736
+ }
737
+ },
738
+ {
739
+ name: 'DTD',
740
+ displayName: trans.__('DTD'),
741
+ mime: 'application/xml-dtd',
742
+ extensions: ['dtd'],
743
+ async load() {
744
+ const m = await import('@codemirror/legacy-modes/mode/dtd');
745
+ return legacy(m.dtd);
746
+ }
747
+ },
748
+ {
749
+ name: 'Dylan',
750
+ displayName: trans.__('Dylan'),
751
+ mime: 'text/x-dylan',
752
+ extensions: ['dylan', 'dyl', 'intr'],
753
+ async load() {
754
+ const m = await import('@codemirror/legacy-modes/mode/dylan');
755
+ return legacy(m.dylan);
756
+ }
757
+ },
758
+ {
759
+ name: 'EBNF',
760
+ displayName: trans.__('EBNF'),
761
+ mime: 'text/x-ebnf',
762
+ async load() {
763
+ const m = await import('@codemirror/legacy-modes/mode/ebnf');
764
+ return legacy(m.ebnf);
765
+ }
766
+ },
767
+ {
768
+ name: 'ECL',
769
+ displayName: trans.__('ECL'),
770
+ mime: 'text/x-ecl',
771
+ extensions: ['ecl'],
772
+ async load() {
773
+ const m = await import('@codemirror/legacy-modes/mode/ecl');
774
+ return legacy(m.ecl);
775
+ }
776
+ },
777
+ {
778
+ name: 'edn',
779
+ displayName: trans.__('edn'),
780
+ mime: 'application/edn',
781
+ extensions: ['edn'],
782
+ async load() {
783
+ const m = await import('@codemirror/legacy-modes/mode/clojure');
784
+ return legacy(m.clojure);
785
+ }
786
+ },
787
+ {
788
+ name: 'Eiffel',
789
+ displayName: trans.__('Eiffel'),
790
+ mime: 'text/x-eiffel',
791
+ extensions: ['e'],
792
+ async load() {
793
+ const m = await import('@codemirror/legacy-modes/mode/eiffel');
794
+ return legacy(m.eiffel);
795
+ }
796
+ },
797
+ {
798
+ name: 'Elm',
799
+ displayName: trans.__('Elm'),
800
+ mime: 'text/x-elm',
801
+ extensions: ['elm'],
802
+ async load() {
803
+ const m = await import('@codemirror/legacy-modes/mode/elm');
804
+ return legacy(m.elm);
805
+ }
806
+ },
807
+ {
808
+ name: 'Erlang',
809
+ displayName: trans.__('Erlang'),
810
+ mime: 'text/x-erlang',
811
+ extensions: ['erl'],
812
+ async load() {
813
+ const m = await import('@codemirror/legacy-modes/mode/erlang');
814
+ return legacy(m.erlang);
815
+ }
816
+ },
817
+ {
818
+ name: 'Esper',
819
+ displayName: trans.__('Esper'),
820
+ mime: 'text/x-esper',
821
+ async load() {
822
+ const m = await import('@codemirror/legacy-modes/mode/sql');
823
+ return legacy(m.esper);
824
+ }
825
+ },
826
+ {
827
+ name: 'Factor',
828
+ displayName: trans.__('Factor'),
829
+ mime: 'text/x-factor',
830
+ extensions: ['factor'],
831
+ async load() {
832
+ const m = await import('@codemirror/legacy-modes/mode/factor');
833
+ return legacy(m.factor);
834
+ }
835
+ },
836
+ {
837
+ name: 'FCL',
838
+ displayName: trans.__('FCL'),
839
+ mime: 'text/x-fcl',
840
+ async load() {
841
+ const m = await import('@codemirror/legacy-modes/mode/fcl');
842
+ return legacy(m.fcl);
843
+ }
844
+ },
845
+ {
846
+ name: 'Forth',
847
+ displayName: trans.__('Forth'),
848
+ mime: 'text/x-forth',
849
+ extensions: ['forth', 'fth', '4th'],
850
+ async load() {
851
+ const m = await import('@codemirror/legacy-modes/mode/forth');
852
+ return legacy(m.forth);
853
+ }
854
+ },
855
+ {
856
+ name: 'Fortran',
857
+ displayName: trans.__('Fortran'),
858
+ mime: 'text/x-fortran',
859
+ extensions: ['f', 'for', 'f77', 'f90', 'f95'],
860
+ async load() {
861
+ const m = await import('@codemirror/legacy-modes/mode/fortran');
862
+ return legacy(m.fortran);
863
+ }
864
+ },
865
+ {
866
+ name: 'F#',
867
+ displayName: trans.__('F#'),
868
+ alias: ['fsharp'],
869
+ mime: 'text/x-fsharp',
870
+ extensions: ['fs'],
871
+ async load() {
872
+ const m = await import('@codemirror/legacy-modes/mode/mllike');
873
+ return legacy(m.fSharp);
874
+ }
875
+ },
876
+ {
877
+ name: 'Gas',
878
+ displayName: trans.__('Gas'),
879
+ mime: 'text/x-gas',
880
+ extensions: ['s'],
881
+ async load() {
882
+ const m = await import('@codemirror/legacy-modes/mode/gas');
883
+ return legacy(m.gas);
884
+ }
885
+ },
886
+ {
887
+ name: 'Gherkin',
888
+ displayName: trans.__('Gherkin'),
889
+ mime: 'text/x-feature',
890
+ extensions: ['feature'],
891
+ async load() {
892
+ const m = await import('@codemirror/legacy-modes/mode/gherkin');
893
+ return legacy(m.gherkin);
894
+ }
895
+ },
896
+ {
897
+ name: 'Go',
898
+ displayName: trans.__('Go'),
899
+ mime: 'text/x-go',
900
+ extensions: ['go'],
901
+ async load() {
902
+ const m = await import('@codemirror/legacy-modes/mode/go');
903
+ return legacy(m.go);
904
+ }
905
+ },
906
+ {
907
+ name: 'Groovy',
908
+ displayName: trans.__('Groovy'),
909
+ mime: 'text/x-groovy',
910
+ extensions: ['groovy', 'gradle'],
911
+ filename: /^Jenkinsfile$/,
912
+ async load() {
913
+ const m = await import('@codemirror/legacy-modes/mode/groovy');
914
+ return legacy(m.groovy);
915
+ }
916
+ },
917
+ {
918
+ name: 'Haskell',
919
+ displayName: trans.__('Haskell'),
920
+ mime: 'text/x-haskell',
921
+ extensions: ['hs'],
922
+ async load() {
923
+ const m = await import('@codemirror/legacy-modes/mode/haskell');
924
+ return legacy(m.haskell);
925
+ }
926
+ },
927
+ {
928
+ name: 'Haxe',
929
+ displayName: trans.__('Haxe'),
930
+ mime: 'text/x-haxe',
931
+ extensions: ['hx'],
932
+ async load() {
933
+ const m = await import('@codemirror/legacy-modes/mode/haxe');
934
+ return legacy(m.haxe);
935
+ }
936
+ },
937
+ {
938
+ name: 'HXML',
939
+ displayName: trans.__('HXML'),
940
+ mime: 'text/x-hxml',
941
+ extensions: ['hxml'],
942
+ async load() {
943
+ const m = await import('@codemirror/legacy-modes/mode/haxe');
944
+ return legacy(m.hxml);
945
+ }
946
+ },
947
+ {
948
+ name: 'HTTP',
949
+ displayName: trans.__('HTTP'),
950
+ mime: 'message/http',
951
+ async load() {
952
+ const m = await import('@codemirror/legacy-modes/mode/http');
953
+ return legacy(m.http);
954
+ }
955
+ },
956
+ {
957
+ name: 'IDL',
958
+ displayName: trans.__('IDL'),
959
+ mime: 'text/x-idl',
960
+ extensions: ['pro'],
961
+ async load() {
962
+ const m = await import('@codemirror/legacy-modes/mode/idl');
963
+ return legacy(m.idl);
964
+ }
965
+ },
966
+ {
967
+ name: 'JSON-LD',
968
+ displayName: trans.__('JSON-LD'),
969
+ alias: ['jsonld'],
970
+ mime: 'application/ld+json',
971
+ extensions: ['jsonld'],
972
+ async load() {
973
+ const m = await import('@codemirror/legacy-modes/mode/javascript');
974
+ return legacy(m.jsonld);
975
+ }
976
+ },
977
+ {
978
+ name: 'Jinja2',
979
+ displayName: trans.__('Jinja2'),
980
+ mime: 'text/jinja2',
981
+ extensions: ['j2', 'jinja', 'jinja2'],
982
+ async load() {
983
+ const m = await import('@codemirror/legacy-modes/mode/jinja2');
984
+ return legacy(m.jinja2);
985
+ }
986
+ },
987
+ {
988
+ name: 'Julia',
989
+ displayName: trans.__('Julia'),
990
+ mime: 'text/x-julia',
991
+ extensions: ['jl'],
992
+ async load() {
993
+ const m = await import('@codemirror/legacy-modes/mode/julia');
994
+ return legacy(m.julia);
995
+ }
996
+ },
997
+ {
998
+ name: 'Kotlin',
999
+ displayName: trans.__('Kotlin'),
1000
+ mime: 'text/x-kotlin',
1001
+ extensions: ['kt'],
1002
+ async load() {
1003
+ const m = await import('@codemirror/legacy-modes/mode/clike');
1004
+ return legacy(m.kotlin);
1005
+ }
1006
+ },
1007
+ {
1008
+ name: 'LESS',
1009
+ displayName: trans.__('LESS'),
1010
+ mime: 'text/x-less',
1011
+ extensions: ['less'],
1012
+ async load() {
1013
+ const m = await import('@codemirror/legacy-modes/mode/css');
1014
+ return legacy(m.less);
1015
+ }
1016
+ },
1017
+ {
1018
+ name: 'LiveScript',
1019
+ displayName: trans.__('LiveScript'),
1020
+ alias: ['ls'],
1021
+ mime: 'text/x-livescript',
1022
+ extensions: ['ls'],
1023
+ async load() {
1024
+ const m = await import('@codemirror/legacy-modes/mode/livescript');
1025
+ return legacy(m.liveScript);
1026
+ }
1027
+ },
1028
+ {
1029
+ name: 'Lua',
1030
+ displayName: trans.__('Lua'),
1031
+ mime: 'text/x-lua',
1032
+ extensions: ['lua'],
1033
+ async load() {
1034
+ const m = await import('@codemirror/legacy-modes/mode/lua');
1035
+ return legacy(m.lua);
1036
+ }
1037
+ },
1038
+ {
1039
+ name: 'mIRC',
1040
+ displayName: trans.__('mIRC'),
1041
+ mime: 'text/mirc',
1042
+ async load() {
1043
+ const m = await import('@codemirror/legacy-modes/mode/mirc');
1044
+ return legacy(m.mirc);
1045
+ }
1046
+ },
1047
+ {
1048
+ name: 'Mathematica',
1049
+ displayName: trans.__('Mathematica'),
1050
+ mime: 'text/x-mathematica',
1051
+ extensions: ['m', 'nb', 'wl', 'wls'],
1052
+ async load() {
1053
+ const m = await import('@codemirror/legacy-modes/mode/mathematica');
1054
+ return legacy(m.mathematica);
1055
+ }
1056
+ },
1057
+ {
1058
+ name: 'Modelica',
1059
+ displayName: trans.__('Modelica'),
1060
+ mime: 'text/x-modelica',
1061
+ extensions: ['mo'],
1062
+ async load() {
1063
+ const m = await import('@codemirror/legacy-modes/mode/modelica');
1064
+ return legacy(m.modelica);
1065
+ }
1066
+ },
1067
+ {
1068
+ name: 'MUMPS',
1069
+ displayName: trans.__('MUMPS'),
1070
+ mime: 'text/x-mumps',
1071
+ extensions: ['mps'],
1072
+ async load() {
1073
+ const m = await import('@codemirror/legacy-modes/mode/mumps');
1074
+ return legacy(m.mumps);
1075
+ }
1076
+ },
1077
+ {
1078
+ name: 'mbox',
1079
+ displayName: trans.__('mbox'),
1080
+ mime: 'application/mbox',
1081
+ extensions: ['mbox'],
1082
+ async load() {
1083
+ const m = await import('@codemirror/legacy-modes/mode/mbox');
1084
+ return legacy(m.mbox);
1085
+ }
1086
+ },
1087
+ {
1088
+ name: 'Nginx',
1089
+ displayName: trans.__('Nginx'),
1090
+ mime: 'text/x-nginx-conf',
1091
+ filename: /nginx.*\.conf$/i,
1092
+ async load() {
1093
+ const m = await import('@codemirror/legacy-modes/mode/nginx');
1094
+ return legacy(m.nginx);
1095
+ }
1096
+ },
1097
+ {
1098
+ name: 'NSIS',
1099
+ displayName: trans.__('NSIS'),
1100
+ mime: 'text/x-nsis',
1101
+ extensions: ['nsh', 'nsi'],
1102
+ async load() {
1103
+ const m = await import('@codemirror/legacy-modes/mode/nsis');
1104
+ return legacy(m.nsis);
1105
+ }
1106
+ },
1107
+ {
1108
+ name: 'NTriples',
1109
+ displayName: trans.__('NTriples'),
1110
+ mime: [
1111
+ 'application/n-triples',
1112
+ 'application/n-quads',
1113
+ 'text/n-triples'
1114
+ ],
1115
+ extensions: ['nt', 'nq'],
1116
+ async load() {
1117
+ const m = await import('@codemirror/legacy-modes/mode/ntriples');
1118
+ return legacy(m.ntriples);
1119
+ }
1120
+ },
1121
+ {
1122
+ name: 'Objective-C',
1123
+ displayName: trans.__('Objective-C'),
1124
+ alias: ['objective-c', 'objc'],
1125
+ mime: 'text/x-objectivec',
1126
+ extensions: ['m'],
1127
+ async load() {
1128
+ const m = await import('@codemirror/legacy-modes/mode/clike');
1129
+ return legacy(m.objectiveC);
1130
+ }
1131
+ },
1132
+ {
1133
+ name: 'Objective-C++',
1134
+ displayName: trans.__('Objective-C++'),
1135
+ alias: ['objective-c++', 'objc++'],
1136
+ mime: 'text/x-objectivec++',
1137
+ extensions: ['mm'],
1138
+ async load() {
1139
+ const m = await import('@codemirror/legacy-modes/mode/clike');
1140
+ return legacy(m.objectiveCpp);
1141
+ }
1142
+ },
1143
+ {
1144
+ name: 'OCaml',
1145
+ displayName: trans.__('OCaml'),
1146
+ mime: 'text/x-ocaml',
1147
+ extensions: ['ml', 'mli', 'mll', 'mly'],
1148
+ async load() {
1149
+ const m = await import('@codemirror/legacy-modes/mode/mllike');
1150
+ return legacy(m.oCaml);
1151
+ }
1152
+ },
1153
+ {
1154
+ name: 'Octave',
1155
+ displayName: trans.__('Octave'),
1156
+ mime: 'text/x-octave',
1157
+ extensions: ['m'],
1158
+ async load() {
1159
+ const m = await import('@codemirror/legacy-modes/mode/octave');
1160
+ return legacy(m.octave);
1161
+ }
1162
+ },
1163
+ {
1164
+ name: 'Oz',
1165
+ displayName: trans.__('Oz'),
1166
+ mime: 'text/x-oz',
1167
+ extensions: ['oz'],
1168
+ async load() {
1169
+ const m = await import('@codemirror/legacy-modes/mode/oz');
1170
+ return legacy(m.oz);
1171
+ }
1172
+ },
1173
+ {
1174
+ name: 'Pascal',
1175
+ displayName: trans.__('Pascal'),
1176
+ mime: 'text/x-pascal',
1177
+ extensions: ['p', 'pas'],
1178
+ async load() {
1179
+ const m = await import('@codemirror/legacy-modes/mode/pascal');
1180
+ return legacy(m.pascal);
1181
+ }
1182
+ },
1183
+ {
1184
+ name: 'Perl',
1185
+ displayName: trans.__('Perl'),
1186
+ mime: 'text/x-perl',
1187
+ extensions: ['pl', 'pm'],
1188
+ async load() {
1189
+ const m = await import('@codemirror/legacy-modes/mode/perl');
1190
+ return legacy(m.perl);
1191
+ }
1192
+ },
1193
+ {
1194
+ name: 'Pig',
1195
+ displayName: trans.__('Pig'),
1196
+ mime: 'text/x-pig',
1197
+ extensions: ['pig'],
1198
+ async load() {
1199
+ const m = await import('@codemirror/legacy-modes/mode/pig');
1200
+ return legacy(m.pig);
1201
+ }
1202
+ },
1203
+ {
1204
+ name: 'PowerShell',
1205
+ displayName: trans.__('PowerShell'),
1206
+ mime: 'application/x-powershell',
1207
+ extensions: ['ps1', 'psd1', 'psm1'],
1208
+ async load() {
1209
+ const m = await import('@codemirror/legacy-modes/mode/powershell');
1210
+ return legacy(m.powerShell);
1211
+ }
1212
+ },
1213
+ {
1214
+ name: 'Properties files',
1215
+ displayName: trans.__('Properties files'),
1216
+ alias: ['ini', 'properties'],
1217
+ mime: 'text/x-properties',
1218
+ extensions: ['properties', 'ini', 'in'],
1219
+ async load() {
1220
+ const m = await import('@codemirror/legacy-modes/mode/properties');
1221
+ return legacy(m.properties);
1222
+ }
1223
+ },
1224
+ {
1225
+ name: 'ProtoBuf',
1226
+ displayName: trans.__('ProtoBuf'),
1227
+ mime: 'text/x-protobuf',
1228
+ extensions: ['proto'],
1229
+ async load() {
1230
+ const m = await import('@codemirror/legacy-modes/mode/protobuf');
1231
+ return legacy(m.protobuf);
1232
+ }
1233
+ },
1234
+ {
1235
+ name: 'Puppet',
1236
+ displayName: trans.__('Puppet'),
1237
+ mime: 'text/x-puppet',
1238
+ extensions: ['pp'],
1239
+ async load() {
1240
+ const m = await import('@codemirror/legacy-modes/mode/puppet');
1241
+ return legacy(m.puppet);
1242
+ }
1243
+ },
1244
+ {
1245
+ name: 'Q',
1246
+ displayName: trans.__('Q'),
1247
+ mime: 'text/x-q',
1248
+ extensions: ['q'],
1249
+ async load() {
1250
+ const m = await import('@codemirror/legacy-modes/mode/q');
1251
+ return legacy(m.q);
1252
+ }
1253
+ },
1254
+ {
1255
+ name: 'R',
1256
+ displayName: trans.__('R'),
1257
+ alias: ['rscript'],
1258
+ mime: 'text/x-rsrc',
1259
+ extensions: ['r', 'R'],
1260
+ async load() {
1261
+ const m = await import('@codemirror/legacy-modes/mode/r');
1262
+ return legacy(m.r);
1263
+ }
1264
+ },
1265
+ {
1266
+ name: 'RPM Changes',
1267
+ displayName: trans.__('RPM Changes'),
1268
+ mime: 'text/x-rpm-changes',
1269
+ async load() {
1270
+ const m = await import('@codemirror/legacy-modes/mode/rpm');
1271
+ return legacy(m.rpmChanges);
1272
+ }
1273
+ },
1274
+ {
1275
+ name: 'RPM Spec',
1276
+ displayName: trans.__('RPM Spec'),
1277
+ mime: 'text/x-rpm-spec',
1278
+ extensions: ['spec'],
1279
+ async load() {
1280
+ const m = await import('@codemirror/legacy-modes/mode/rpm');
1281
+ return legacy(m.rpmSpec);
1282
+ }
1283
+ },
1284
+ {
1285
+ name: 'Ruby',
1286
+ displayName: trans.__('Ruby'),
1287
+ alias: ['jruby', 'macruby', 'rake', 'rb', 'rbx'],
1288
+ mime: 'text/x-ruby',
1289
+ extensions: ['rb'],
1290
+ async load() {
1291
+ const m = await import('@codemirror/legacy-modes/mode/ruby');
1292
+ return legacy(m.ruby);
1293
+ }
1294
+ },
1295
+ {
1296
+ name: 'SAS',
1297
+ displayName: trans.__('SAS'),
1298
+ mime: 'text/x-sas',
1299
+ extensions: ['sas'],
1300
+ async load() {
1301
+ const m = await import('@codemirror/legacy-modes/mode/sas');
1302
+ return legacy(m.sas);
1303
+ }
1304
+ },
1305
+ {
1306
+ name: 'Scala',
1307
+ displayName: trans.__('Scala'),
1308
+ mime: 'text/x-scala',
1309
+ extensions: ['scala'],
1310
+ async load() {
1311
+ const m = await import('@codemirror/legacy-modes/mode/clike');
1312
+ return legacy(m.scala);
1313
+ }
1314
+ },
1315
+ {
1316
+ name: 'Scheme',
1317
+ displayName: trans.__('Scheme'),
1318
+ mime: 'text/x-scheme',
1319
+ extensions: ['scm', 'ss'],
1320
+ async load() {
1321
+ const m = await import('@codemirror/legacy-modes/mode/scheme');
1322
+ return legacy(m.scheme);
1323
+ }
1324
+ },
1325
+ {
1326
+ name: 'SCSS',
1327
+ displayName: trans.__('SCSS'),
1328
+ mime: 'text/x-scss',
1329
+ extensions: ['scss'],
1330
+ async load() {
1331
+ const m = await import('@codemirror/legacy-modes/mode/css');
1332
+ return legacy(m.sCSS);
1333
+ }
1334
+ },
1335
+ {
1336
+ name: 'Shell',
1337
+ displayName: trans.__('Shell'),
1338
+ alias: ['bash', 'sh', 'zsh'],
1339
+ mime: ['text/x-sh', 'application/x-sh'],
1340
+ extensions: ['sh', 'ksh', 'bash'],
1341
+ filename: /^PKGBUILD$/,
1342
+ async load() {
1343
+ const m = await import('@codemirror/legacy-modes/mode/shell');
1344
+ return legacy(m.shell);
1345
+ }
1346
+ },
1347
+ {
1348
+ name: 'Sieve',
1349
+ displayName: trans.__('Sieve'),
1350
+ mime: 'application/sieve',
1351
+ extensions: ['siv', 'sieve'],
1352
+ async load() {
1353
+ const m = await import('@codemirror/legacy-modes/mode/sieve');
1354
+ return legacy(m.sieve);
1355
+ }
1356
+ },
1357
+ {
1358
+ name: 'Smalltalk',
1359
+ displayName: trans.__('Smalltalk'),
1360
+ mime: 'text/x-stsrc',
1361
+ extensions: ['st'],
1362
+ async load() {
1363
+ const m = await import('@codemirror/legacy-modes/mode/smalltalk');
1364
+ return legacy(m.smalltalk);
1365
+ }
1366
+ },
1367
+ {
1368
+ name: 'Solr',
1369
+ displayName: trans.__('Solr'),
1370
+ mime: 'text/x-solr',
1371
+ async load() {
1372
+ const m = await import('@codemirror/legacy-modes/mode/solr');
1373
+ return legacy(m.solr);
1374
+ }
1375
+ },
1376
+ {
1377
+ name: 'SML',
1378
+ displayName: trans.__('SML'),
1379
+ mime: 'text/x-sml',
1380
+ extensions: ['sml', 'sig', 'fun', 'smackspec'],
1381
+ async load() {
1382
+ const m = await import('@codemirror/legacy-modes/mode/mllike');
1383
+ return legacy(m.sml);
1384
+ }
1385
+ },
1386
+ {
1387
+ name: 'SPARQL',
1388
+ displayName: trans.__('SPARQL'),
1389
+ alias: ['sparul'],
1390
+ mime: 'application/sparql-query',
1391
+ extensions: ['rq', 'sparql'],
1392
+ async load() {
1393
+ const m = await import('@codemirror/legacy-modes/mode/sparql');
1394
+ return legacy(m.sparql);
1395
+ }
1396
+ },
1397
+ {
1398
+ name: 'Spreadsheet',
1399
+ displayName: trans.__('Spreadsheet'),
1400
+ alias: ['excel', 'formula'],
1401
+ mime: 'text/x-spreadsheet',
1402
+ async load() {
1403
+ const m = await import('@codemirror/legacy-modes/mode/spreadsheet');
1404
+ return legacy(m.spreadsheet);
1405
+ }
1406
+ },
1407
+ {
1408
+ name: 'Squirrel',
1409
+ displayName: trans.__('Squirrel'),
1410
+ mime: 'text/x-squirrel',
1411
+ extensions: ['nut'],
1412
+ async load() {
1413
+ const m = await import('@codemirror/legacy-modes/mode/clike');
1414
+ return legacy(m.squirrel);
1415
+ }
1416
+ },
1417
+ {
1418
+ name: 'Stylus',
1419
+ displayName: trans.__('Stylus'),
1420
+ mime: 'text/x-styl',
1421
+ extensions: ['styl'],
1422
+ async load() {
1423
+ const m = await import('@codemirror/legacy-modes/mode/stylus');
1424
+ return legacy(m.stylus);
1425
+ }
1426
+ },
1427
+ {
1428
+ name: 'Swift',
1429
+ displayName: trans.__('Swift'),
1430
+ mime: 'text/x-swift',
1431
+ extensions: ['swift'],
1432
+ async load() {
1433
+ const m = await import('@codemirror/legacy-modes/mode/swift');
1434
+ return legacy(m.swift);
1435
+ }
1436
+ },
1437
+ {
1438
+ name: 'sTeX',
1439
+ displayName: trans.__('sTeX'),
1440
+ mime: 'text/x-stex',
1441
+ async load() {
1442
+ const m = await import('@codemirror/legacy-modes/mode/stex');
1443
+ return legacy(m.stex);
1444
+ }
1445
+ },
1446
+ {
1447
+ name: 'LaTeX',
1448
+ displayName: trans.__('LaTeX'),
1449
+ alias: ['tex'],
1450
+ mime: 'text/x-latex',
1451
+ extensions: ['text', 'ltx', 'tex'],
1452
+ async load() {
1453
+ const m = await import('@codemirror/legacy-modes/mode/stex');
1454
+ return legacy(m.stex);
1455
+ }
1456
+ },
1457
+ {
1458
+ name: 'SystemVerilog',
1459
+ displayName: trans.__('SystemVerilog'),
1460
+ mime: 'text/x-systemverilog',
1461
+ extensions: ['v', 'sv', 'svh'],
1462
+ async load() {
1463
+ const m = await import('@codemirror/legacy-modes/mode/verilog');
1464
+ return legacy(m.verilog);
1465
+ }
1466
+ },
1467
+ {
1468
+ name: 'Tcl',
1469
+ displayName: trans.__('Tcl'),
1470
+ mime: 'text/x-tcl',
1471
+ extensions: ['tcl'],
1472
+ async load() {
1473
+ const m = await import('@codemirror/legacy-modes/mode/tcl');
1474
+ return legacy(m.tcl);
1475
+ }
1476
+ },
1477
+ {
1478
+ name: 'Textile',
1479
+ displayName: trans.__('Textile'),
1480
+ mime: 'text/x-textile',
1481
+ extensions: ['textile'],
1482
+ async load() {
1483
+ const m = await import('@codemirror/legacy-modes/mode/textile');
1484
+ return legacy(m.textile);
1485
+ }
1486
+ },
1487
+ {
1488
+ name: 'TiddlyWiki',
1489
+ displayName: trans.__('TiddlyWiki'),
1490
+ mime: 'text/x-tiddlywiki',
1491
+ async load() {
1492
+ const m = await import('@codemirror/legacy-modes/mode/tiddlywiki');
1493
+ return legacy(m.tiddlyWiki);
1494
+ }
1495
+ },
1496
+ {
1497
+ name: 'Tiki wiki',
1498
+ displayName: trans.__('Tiki wiki'),
1499
+ mime: 'text/tiki',
1500
+ async load() {
1501
+ const m = await import('@codemirror/legacy-modes/mode/tiki');
1502
+ return legacy(m.tiki);
1503
+ }
1504
+ },
1505
+ {
1506
+ name: 'TOML',
1507
+ displayName: trans.__('TOML'),
1508
+ mime: 'text/x-toml',
1509
+ extensions: ['toml'],
1510
+ async load() {
1511
+ const m = await import('@codemirror/legacy-modes/mode/toml');
1512
+ return legacy(m.toml);
1513
+ }
1514
+ },
1515
+ {
1516
+ name: 'troff',
1517
+ displayName: trans.__('troff'),
1518
+ mime: 'text/troff',
1519
+ extensions: ['1', '2', '3', '4', '5', '6', '7', '8', '9'],
1520
+ async load() {
1521
+ const m = await import('@codemirror/legacy-modes/mode/troff');
1522
+ return legacy(m.troff);
1523
+ }
1524
+ },
1525
+ {
1526
+ name: 'TTCN',
1527
+ displayName: trans.__('TTCN'),
1528
+ mime: 'text/x-ttcn',
1529
+ extensions: ['ttcn', 'ttcn3', 'ttcnpp'],
1530
+ async load() {
1531
+ const m = await import('@codemirror/legacy-modes/mode/ttcn');
1532
+ return legacy(m.ttcn);
1533
+ }
1534
+ },
1535
+ {
1536
+ name: 'TTCN_CFG',
1537
+ displayName: trans.__('TTCN_CFG'),
1538
+ mime: 'text/x-ttcn-cfg',
1539
+ extensions: ['cfg'],
1540
+ async load() {
1541
+ const m = await import('@codemirror/legacy-modes/mode/ttcn-cfg');
1542
+ return legacy(m.ttcnCfg);
1543
+ }
1544
+ },
1545
+ {
1546
+ name: 'Turtle',
1547
+ displayName: trans.__('Turtle'),
1548
+ mime: 'text/turtle',
1549
+ extensions: ['ttl'],
1550
+ async load() {
1551
+ const m = await import('@codemirror/legacy-modes/mode/turtle');
1552
+ return legacy(m.turtle);
1553
+ }
1554
+ },
1555
+ {
1556
+ name: 'Web IDL',
1557
+ displayName: trans.__('Web IDL'),
1558
+ mime: 'text/x-webidl',
1559
+ extensions: ['webidl'],
1560
+ async load() {
1561
+ const m = await import('@codemirror/legacy-modes/mode/webidl');
1562
+ return legacy(m.webIDL);
1563
+ }
1564
+ },
1565
+ {
1566
+ name: 'VB.NET',
1567
+ displayName: trans.__('VB.NET'),
1568
+ mime: 'text/x-vb',
1569
+ extensions: ['vb'],
1570
+ async load() {
1571
+ const m = await import('@codemirror/legacy-modes/mode/vb');
1572
+ return legacy(m.vb);
1573
+ }
1574
+ },
1575
+ {
1576
+ name: 'VBScript',
1577
+ displayName: trans.__('VBScript'),
1578
+ mime: 'text/vbscript',
1579
+ extensions: ['vbs'],
1580
+ async load() {
1581
+ const m = await import('@codemirror/legacy-modes/mode/vbscript');
1582
+ return legacy(m.vbScript);
1583
+ }
1584
+ },
1585
+ {
1586
+ name: 'Velocity',
1587
+ displayName: trans.__('Velocity'),
1588
+ mime: 'text/velocity',
1589
+ extensions: ['vtl'],
1590
+ async load() {
1591
+ const m = await import('@codemirror/legacy-modes/mode/velocity');
1592
+ return legacy(m.velocity);
1593
+ }
1594
+ },
1595
+ {
1596
+ name: 'Verilog',
1597
+ displayName: trans.__('Verilog'),
1598
+ mime: 'text/x-verilog',
1599
+ extensions: ['v'],
1600
+ async load() {
1601
+ const m = await import('@codemirror/legacy-modes/mode/verilog');
1602
+ return legacy(m.verilog);
1603
+ }
1604
+ },
1605
+ {
1606
+ name: 'VHDL',
1607
+ displayName: trans.__('VHDL'),
1608
+ mime: 'text/x-vhdl',
1609
+ extensions: ['vhd', 'vhdl'],
1610
+ async load() {
1611
+ const m = await import('@codemirror/legacy-modes/mode/vhdl');
1612
+ return legacy(m.vhdl);
1613
+ }
1614
+ },
1615
+ {
1616
+ name: 'XQuery',
1617
+ displayName: trans.__('XQuery'),
1618
+ mime: 'application/xquery',
1619
+ extensions: ['xy', 'xquery'],
1620
+ async load() {
1621
+ const m = await import('@codemirror/legacy-modes/mode/xquery');
1622
+ return legacy(m.xQuery);
1623
+ }
1624
+ },
1625
+ {
1626
+ name: 'Yacas',
1627
+ displayName: trans.__('Yacas'),
1628
+ mime: 'text/x-yacas',
1629
+ extensions: ['ys'],
1630
+ async load() {
1631
+ const m = await import('@codemirror/legacy-modes/mode/yacas');
1632
+ return legacy(m.yacas);
1633
+ }
1634
+ },
1635
+ {
1636
+ name: 'YAML',
1637
+ displayName: trans.__('YAML'),
1638
+ alias: ['yml'],
1639
+ mime: ['text/x-yaml', 'text/yaml'],
1640
+ extensions: ['yaml', 'yml'],
1641
+ async load() {
1642
+ const m = await import('@codemirror/legacy-modes/mode/yaml');
1643
+ return legacy(m.yaml);
1644
+ }
1645
+ },
1646
+ {
1647
+ name: 'Z80',
1648
+ displayName: trans.__('Z80'),
1649
+ mime: 'text/x-z80',
1650
+ extensions: ['z80'],
1651
+ async load() {
1652
+ const m = await import('@codemirror/legacy-modes/mode/z80');
1653
+ return legacy(m.z80);
1654
+ }
1655
+ },
1656
+ {
1657
+ name: 'mscgen',
1658
+ displayName: trans.__('mscgen'),
1659
+ mime: 'text/x-mscgen',
1660
+ extensions: ['mscgen', 'mscin', 'msc'],
1661
+ async load() {
1662
+ const m = await import('@codemirror/legacy-modes/mode/mscgen');
1663
+ return legacy(m.mscgen);
1664
+ }
1665
+ },
1666
+ {
1667
+ name: 'xu',
1668
+ displayName: trans.__('xu'),
1669
+ mime: 'text/x-xu',
1670
+ extensions: ['xu'],
1671
+ async load() {
1672
+ const m = await import('@codemirror/legacy-modes/mode/mscgen');
1673
+ return legacy(m.xu);
1674
+ }
1675
+ },
1676
+ {
1677
+ name: 'msgenny',
1678
+ displayName: trans.__('msgenny'),
1679
+ mime: 'text/x-msgenny',
1680
+ extensions: ['msgenny'],
1681
+ async load() {
1682
+ const m = await import('@codemirror/legacy-modes/mode/mscgen');
1683
+ return legacy(m.msgenny);
1684
+ }
1685
+ }
1686
+ ];
1687
+ }
1688
+ EditorLanguageRegistry.getDefaultLanguages = getDefaultLanguages;
1689
+ })(EditorLanguageRegistry || (EditorLanguageRegistry = {}));
1690
+ //# sourceMappingURL=language.js.map