@jupyterlab/codemirror 4.0.0-alpha.2 → 4.0.0-alpha.20
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.
- package/lib/codemirror-ipythongfm.d.ts +9 -3
- package/lib/codemirror-ipythongfm.js +52 -30
- package/lib/codemirror-ipythongfm.js.map +1 -1
- package/lib/commands.d.ts +13 -0
- package/lib/commands.js +32 -0
- package/lib/commands.js.map +1 -0
- package/lib/editor.d.ts +48 -279
- package/lib/editor.js +220 -818
- package/lib/editor.js.map +1 -1
- package/lib/extension.d.ts +236 -0
- package/lib/extension.js +687 -0
- package/lib/extension.js.map +1 -0
- package/lib/extensions/customStyle.d.ts +25 -0
- package/lib/extensions/customStyle.js +51 -0
- package/lib/extensions/customStyle.js.map +1 -0
- package/lib/extensions/index.d.ts +3 -0
- package/lib/extensions/index.js +8 -0
- package/lib/extensions/index.js.map +1 -0
- package/lib/extensions/rulers.d.ts +8 -0
- package/lib/extensions/rulers.js +85 -0
- package/lib/extensions/rulers.js.map +1 -0
- package/lib/extensions/ybinding.d.ts +125 -0
- package/lib/extensions/ybinding.js +213 -0
- package/lib/extensions/ybinding.js.map +1 -0
- package/lib/factory.d.ts +15 -5
- package/lib/factory.js +53 -24
- package/lib/factory.js.map +1 -1
- package/lib/index.d.ts +7 -19
- package/lib/index.js +7 -23
- package/lib/index.js.map +1 -1
- package/lib/language.d.ts +96 -0
- package/lib/language.js +1690 -0
- package/lib/language.js.map +1 -0
- package/lib/mimetype.d.ts +3 -0
- package/lib/mimetype.js +16 -5
- package/lib/mimetype.js.map +1 -1
- package/lib/searchprovider.d.ts +197 -0
- package/lib/searchprovider.js +550 -0
- package/lib/searchprovider.js.map +1 -0
- package/lib/theme.d.ts +57 -0
- package/lib/theme.js +194 -0
- package/lib/theme.js.map +1 -0
- package/lib/token.d.ts +375 -0
- package/lib/token.js +18 -0
- package/lib/token.js.map +1 -0
- package/package.json +45 -41
- package/src/codemirror-ipythongfm.ts +109 -0
- package/src/commands.ts +34 -0
- package/src/editor.ts +783 -0
- package/src/extension.ts +878 -0
- package/src/extensions/customStyle.ts +79 -0
- package/src/extensions/index.ts +8 -0
- package/src/extensions/rulers.ts +112 -0
- package/src/extensions/ybinding.ts +267 -0
- package/src/factory.ts +100 -0
- package/src/index.ts +17 -0
- package/src/language.ts +1729 -0
- package/src/mimetype.ts +54 -0
- package/src/searchprovider.ts +700 -0
- package/src/theme.ts +219 -0
- package/src/token.ts +436 -0
- package/src/typings.d.ts +13 -0
- package/style/base.css +22 -162
- package/style/index.css +1 -7
- package/style/index.js +1 -7
- package/lib/codemirror-ipython.d.ts +0 -2
- package/lib/codemirror-ipython.js +0 -30
- package/lib/codemirror-ipython.js.map +0 -1
- package/lib/mode.d.ts +0 -81
- package/lib/mode.js +0 -149
- package/lib/mode.js.map +0 -1
- package/lib/syntaxstatus.d.ts +0 -67
- package/lib/syntaxstatus.js +0 -140
- package/lib/syntaxstatus.js.map +0 -1
- package/lib/tokens.d.ts +0 -18
- package/lib/tokens.js +0 -9
- package/lib/tokens.js.map +0 -1
- package/typings/codemirror/codemirror.d.ts +0 -227
package/lib/language.js
ADDED
|
@@ -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
|