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