@codingame/monaco-editor-wrapper 1.4.0 → 1.5.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.
package/dist/jsx-tags.js CHANGED
@@ -98,12 +98,61 @@ var surroundingPairs = [
98
98
  "\""
99
99
  ]
100
100
  ];
101
+ var wordPattern = {
102
+ pattern: "(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\$\\^\\&\\*\\(\\)\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:'\"\\,\\.\\<\\>\\/\\s]+)"
103
+ };
104
+ var onEnterRules = [
105
+ {
106
+ beforeText: {
107
+ pattern: "<(?!(?:area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr))([_:\\w][_:\\w\\-.\\d]*)([^/>]*(?!/)>)[^<]*$",
108
+ flags: "i"
109
+ },
110
+ afterText: {
111
+ pattern: "^<\\/([_:\\w][_:\\w-.\\d]*)\\s*>$",
112
+ flags: "i"
113
+ },
114
+ action: {
115
+ indent: "indentOutdent"
116
+ }
117
+ },
118
+ {
119
+ beforeText: {
120
+ pattern: "<(?!(?:area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr))([_:\\w][_:\\w\\-.\\d]*)([^/>]*(?!/)>)[^<]*$",
121
+ flags: "i"
122
+ },
123
+ action: {
124
+ indent: "indent"
125
+ }
126
+ },
127
+ {
128
+ beforeText: {
129
+ pattern: "^>$"
130
+ },
131
+ afterText: {
132
+ pattern: "/^<\\/([_:\\w][_:\\w-.\\d]*)\\s*>$",
133
+ flags: "i"
134
+ },
135
+ action: {
136
+ indent: "indentOutdent"
137
+ }
138
+ },
139
+ {
140
+ beforeText: {
141
+ pattern: "^>$"
142
+ },
143
+ action: {
144
+ indent: "indent"
145
+ }
146
+ }
147
+ ];
101
148
  var jsxTags = {
102
149
  comments: comments,
103
150
  brackets: brackets,
104
151
  colorizedBracketPairs: colorizedBracketPairs,
105
152
  autoClosingPairs: autoClosingPairs,
106
- surroundingPairs: surroundingPairs
153
+ surroundingPairs: surroundingPairs,
154
+ wordPattern: wordPattern,
155
+ onEnterRules: onEnterRules
107
156
  };
108
157
 
109
- export { autoClosingPairs, brackets, colorizedBracketPairs, comments, jsxTags as default, surroundingPairs };
158
+ export { autoClosingPairs, brackets, colorizedBracketPairs, comments, jsxTags as default, onEnterRules, surroundingPairs, wordPattern };
@@ -1,3 +1,11 @@
1
1
  import * as monaco from 'monaco-editor';
2
- declare const loader: Partial<Record<string, () => Promise<Record<string, monaco.extra.ILanguageConfiguration>>>>;
2
+ export interface RawLanguageConfiguration extends Omit<monaco.extra.ILanguageConfiguration, 'folding'> {
3
+ folding?: Omit<monaco.extra.ILanguageConfiguration['folding'], 'markers'> & {
4
+ markers?: {
5
+ start: string;
6
+ end: string;
7
+ };
8
+ };
9
+ }
10
+ declare const loader: Partial<Record<string, () => Promise<RawLanguageConfiguration>>>;
3
11
  export default loader;
@@ -1,8 +1,8 @@
1
1
  import * as monaco from 'monaco-editor';
2
2
  import { IGrammar } from 'vscode-textmate';
3
- export default class CGTMTokenizationSupport extends monaco.extra.TMTokenizationSupport {
3
+ export default class CGTMTokenizationSupport extends monaco.extra.TMTokenizationSupportWithLineLimit {
4
4
  private languageId;
5
5
  private grammar;
6
6
  constructor(languageId: string, encodedLanguageId: monaco.languages.LanguageId, actual: monaco.extra.TMTokenization, grammar: IGrammar);
7
- tokenize(line: string, hasEOL: boolean, state: monaco.languages.IState, offsetDelta: number): monaco.TokenizationResult;
7
+ tokenize(line: string, hasEOL: boolean, state: monaco.languages.IState): monaco.TokenizationResult;
8
8
  }
package/dist/lua2.js CHANGED
@@ -226,6 +226,16 @@ var lua = [
226
226
  ],
227
227
  "type": "string"
228
228
  },
229
+ "codestyle-check": {
230
+ "default": "None",
231
+ "description": "%config.diagnostics.codestyle-check%",
232
+ "enum": [
233
+ "Any",
234
+ "Opened",
235
+ "None"
236
+ ],
237
+ "type": "string"
238
+ },
229
239
  "count-down-loop": {
230
240
  "default": "Any",
231
241
  "description": "%config.diagnostics.count-down-loop%",
@@ -640,6 +650,17 @@ var lua = [
640
650
  ],
641
651
  "type": "string"
642
652
  },
653
+ "codestyle-check": {
654
+ "default": "Warning",
655
+ "description": "%config.diagnostics.codestyle-check%",
656
+ "enum": [
657
+ "Error",
658
+ "Warning",
659
+ "Information",
660
+ "Hint"
661
+ ],
662
+ "type": "string"
663
+ },
643
664
  "count-down-loop": {
644
665
  "default": "Warning",
645
666
  "description": "%config.diagnostics.count-down-loop%",
@@ -1031,7 +1052,7 @@ var lua = [
1031
1052
  "type": "object"
1032
1053
  },
1033
1054
  "Lua.diagnostics.workspaceDelay": {
1034
- "default": 3,
1055
+ "default": 3000,
1035
1056
  "markdownDescription": "Latency (milliseconds) for workspace diagnostics. When you start the workspace, or edit any file, the entire workspace will be re-diagnosed in the background. Set to negative to disable workspace diagnostics.",
1036
1057
  "scope": 4,
1037
1058
  "type": "integer"
@@ -1042,6 +1063,17 @@ var lua = [
1042
1063
  "scope": 4,
1043
1064
  "type": "integer"
1044
1065
  },
1066
+ "Lua.format.defaultConfig": {
1067
+ "markdownDescription": "%config.format.defaultConfig%",
1068
+ "scope": 4,
1069
+ "type": "object"
1070
+ },
1071
+ "Lua.format.enable": {
1072
+ "default": "true",
1073
+ "markdownDescription": "Enable code formatter.",
1074
+ "scope": 4,
1075
+ "type": "boolean"
1076
+ },
1045
1077
  "Lua.hint.arrayIndex": {
1046
1078
  "default": "Auto",
1047
1079
  "enum": [
@@ -1428,6 +1460,9 @@ var lua = [
1428
1460
  "default": null,
1429
1461
  "markdownDescription": "Enable telemetry to send your editor information and error logs over the network. Read our privacy policy [here](https://github.com/sumneko/lua-language-server/wiki/Privacy-Policy).\n",
1430
1462
  "scope": 4,
1463
+ "tags": [
1464
+ "telemetry"
1465
+ ],
1431
1466
  "type": [
1432
1467
  "boolean",
1433
1468
  "null"
package/dist/main.js CHANGED
@@ -4,48 +4,24 @@ import { _ as _objectSpread2, a as _defineProperty } from './_rollupPluginBabelH
4
4
  import onigFile from 'vscode-oniguruma/release/onig.wasm';
5
5
  import { loadWASM, createOnigScanner, createOnigString } from 'vscode-oniguruma';
6
6
  import './worker.js';
7
- import EmacsExtension from 'monaco-emacs';
7
+ import EmacsExtension from '@codingame/monaco-emacs';
8
8
  import * as monacoVim from 'monaco-vim';
9
9
 
10
10
  function _mergeNamespaces(n, m) {
11
- m.forEach(function (e) {
12
- e && typeof e !== 'string' && !Array.isArray(e) && Object.keys(e).forEach(function (k) {
13
- if (k !== 'default' && !(k in n)) {
14
- var d = Object.getOwnPropertyDescriptor(e, k);
15
- Object.defineProperty(n, k, d.get ? d : {
16
- enumerable: true,
17
- get: function () { return e[k]; }
18
- });
19
- }
20
- });
21
- });
22
- return Object.freeze(n);
11
+ m.forEach(function (e) {
12
+ e && typeof e !== 'string' && !Array.isArray(e) && Object.keys(e).forEach(function (k) {
13
+ if (k !== 'default' && !(k in n)) {
14
+ var d = Object.getOwnPropertyDescriptor(e, k);
15
+ Object.defineProperty(n, k, d.get ? d : {
16
+ enumerable: true,
17
+ get: function () { return e[k]; }
18
+ });
19
+ }
20
+ });
21
+ });
22
+ return Object.freeze(n);
23
23
  }
24
24
 
25
- monaco.errorHandler.setUnexpectedErrorHandler(error => {
26
- console.error('Unexpected error', error);
27
- });
28
- /* Add custom blocks parsing (for tech.io):
29
- // { [autofold]
30
- // custom block content
31
- // }
32
- */
33
-
34
- const CUSTOM_BLOCK_BEGIN_REGEX = '^\\w*(?:\\/\\/|#).*\\{';
35
- const CUSTOM_BLOCK_END_REGEX = '^\\w*(?:\\/\\/|#).*\\}';
36
- const original = monaco.languages.LanguageConfigurationRegistryImpl.prototype.getFoldingRules;
37
-
38
- monaco.languages.LanguageConfigurationRegistryImpl.prototype.getFoldingRules = function (languageId) {
39
- const foldingRules = original.call(this, languageId);
40
- const markers = foldingRules.markers;
41
- return _objectSpread2(_objectSpread2({}, foldingRules), {}, {
42
- markers: {
43
- start: markers != null ? new RegExp(markers.start.source + '|' + CUSTOM_BLOCK_BEGIN_REGEX) : new RegExp(CUSTOM_BLOCK_BEGIN_REGEX),
44
- end: markers != null ? new RegExp(markers.end.source + '|' + CUSTOM_BLOCK_END_REGEX) : new RegExp(CUSTOM_BLOCK_END_REGEX)
45
- }
46
- });
47
- };
48
-
49
25
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
50
26
 
51
27
  function getDefaultExportFromCjs (x) {
@@ -62,8 +38,8 @@ var main$1 = {exports: {}};
62
38
  var main = /*@__PURE__*/getDefaultExportFromCjs(main$1.exports);
63
39
 
64
40
  var vscodeTextmate = /*#__PURE__*/Object.freeze(/*#__PURE__*/_mergeNamespaces({
65
- __proto__: null,
66
- 'default': main
41
+ __proto__: null,
42
+ 'default': main
67
43
  }, [main$1.exports]));
68
44
 
69
45
  function isValidHexColor(hex) {
@@ -205,7 +181,7 @@ async function addVSCodeTheme(name, vscodeTheme) {
205
181
  encodedTokensColors: themeData.tokenColorMap.slice(1)
206
182
  });
207
183
 
208
- monaco.editor.defineTheme(name, monacoTheme);
184
+ monaco.editor.defineTheme(name, monacoTheme, vscodeTheme.semanticHighlighting);
209
185
  }
210
186
  function getThemeData(themeName) {
211
187
  var _vscodeThemeData$get;
@@ -273,7 +249,7 @@ class CGTMGrammarFactory extends monaco.extra.TMGrammarFactory {
273
249
  }, themeData.tokenColorMap);
274
250
  };
275
251
 
276
- const standaloneThemeService = monaco.editor.StaticServices.standaloneThemeService.get();
252
+ const standaloneThemeService = monaco.extra.StandaloneServices.get(monaco.editor.IStandaloneThemeService);
277
253
 
278
254
  this._register(standaloneThemeService.onDidColorThemeChange(updateTheme));
279
255
 
@@ -288,15 +264,15 @@ function toMonacoToken(token) {
288
264
  });
289
265
  }
290
266
 
291
- class CGTMTokenizationSupport extends monaco.extra.TMTokenizationSupport {
267
+ class CGTMTokenizationSupport extends monaco.extra.TMTokenizationSupportWithLineLimit {
292
268
  constructor(languageId, encodedLanguageId, actual, grammar) {
293
- super(languageId, encodedLanguageId, actual, monaco.editor.StaticServices.configurationService.get());
269
+ super(languageId, encodedLanguageId, actual, monaco.extra.StandaloneServices.get(monaco.extra.IConfigurationService));
294
270
  this.languageId = languageId;
295
271
  this.grammar = grammar;
296
272
  } // To make "inspect tokens" work, default impl is `throw new Error('Not supported!');`
297
273
 
298
274
 
299
- tokenize(line, hasEOL, state, offsetDelta) {
275
+ tokenize(line, hasEOL, state) {
300
276
  return monaco.languages.adaptTokenize(this.languageId, {
301
277
  tokenize: (line, state) => {
302
278
  const actualResult = this.grammar.tokenizeLine(line, state);
@@ -305,7 +281,7 @@ class CGTMTokenizationSupport extends monaco.extra.TMTokenizationSupport {
305
281
  endState: actualResult.ruleStack
306
282
  };
307
283
  }
308
- }, line, state, offsetDelta);
284
+ }, line, state);
309
285
  }
310
286
 
311
287
  }
@@ -825,6 +801,10 @@ var rawGrammars = [
825
801
  "language": "tasty",
826
802
  "scopeName": "source.tasty"
827
803
  },
804
+ {
805
+ "language": "buildtarget",
806
+ "scopeName": "source.buildtarget"
807
+ },
828
808
  {
829
809
  "language": "COBOL",
830
810
  "scopeName": "source.cobol",
@@ -1244,6 +1224,9 @@ const loader$2 = {
1244
1224
  'source.tasty': async () => (await import(
1245
1225
  /* webpackChunkName: "grammar-source-tasty" */
1246
1226
  './tasty.js').then(module => module)).default,
1227
+ 'source.buildtarget': async () => (await import(
1228
+ /* webpackChunkName: "grammar-source-buildtarget" */
1229
+ './buildtarget.js').then(module => module)).default,
1247
1230
  'source.cobol': async () => (await import(
1248
1231
  /* webpackChunkName: "grammar-source-cobol" */
1249
1232
  './COBOL.tmLanguage.js').then(module => module)).default,
@@ -2503,8 +2486,8 @@ for (const contribution of extensions.semanticTokenScopes) {
2503
2486
  }
2504
2487
 
2505
2488
  function createGrammarFactory() {
2506
- const modeService = monaco.editor.StaticServices.modeService.get();
2507
- const parsedGrammars = rawGrammars.map(grammar => _objectSpread2(_objectSpread2({}, monaco.extra.parseTextMateGrammar(grammar, modeService)), {}, {
2489
+ const languageService = monaco.extra.StandaloneServices.get(monaco.languages.ILanguageService);
2490
+ const parsedGrammars = rawGrammars.map(grammar => _objectSpread2(_objectSpread2({}, monaco.extra.parseTextMateGrammar(grammar, languageService)), {}, {
2508
2491
  location: monaco.Uri.file(grammar.scopeName + '.json')
2509
2492
  }));
2510
2493
  return new CGTMGrammarFactory(parsedGrammars, loader$2, onigFile);
@@ -2520,10 +2503,10 @@ function getOrCreateGrammarFactory() {
2520
2503
  return textMateGrammarFactory;
2521
2504
  }
2522
2505
 
2523
- const modeService$2 = monaco.editor.StaticServices.modeService.get();
2506
+ const languageService$2 = monaco.extra.StandaloneServices.get(monaco.languages.ILanguageService);
2524
2507
  async function createTextMateTokensProvider(languageId) {
2525
2508
  const grammarFactory = getOrCreateGrammarFactory();
2526
- const encodedLanguageId = modeService$2.languageIdCodec.encodeLanguageId(languageId);
2509
+ const encodedLanguageId = languageService$2.languageIdCodec.encodeLanguageId(languageId);
2527
2510
  const {
2528
2511
  grammar,
2529
2512
  initialState,
@@ -2536,7 +2519,8 @@ async function createTextMateTokensProvider(languageId) {
2536
2519
 
2537
2520
  const tokenization = new monaco.extra.TMTokenization(grammar, initialState, containsEmbeddedLanguages);
2538
2521
  tokenization.onDidEncounterLanguage(encodedLanguageId => {
2539
- modeService$2.triggerMode(modeService$2.languageIdCodec.decodeLanguageId(encodedLanguageId));
2522
+ // Force monaco to load this language and trigger the global `onDidEncounterLanguage`
2523
+ languageService$2.createById(languageService$2.languageIdCodec.decodeLanguageId(encodedLanguageId));
2540
2524
  });
2541
2525
  return new CGTMTokenizationSupport(languageId, encodedLanguageId, tokenization, grammar);
2542
2526
  }
@@ -2783,7 +2767,8 @@ var textMateLanguages = [
2783
2767
  ".har",
2784
2768
  ".jslintrc",
2785
2769
  ".jsonld",
2786
- ".geojson"
2770
+ ".geojson",
2771
+ ".ipynb"
2787
2772
  ],
2788
2773
  "filenames": [
2789
2774
  "composer.lock",
@@ -3523,6 +3508,12 @@ var textMateLanguages = [
3523
3508
  ".tasty-decoded"
3524
3509
  ]
3525
3510
  },
3511
+ {
3512
+ "id": "buildtarget",
3513
+ "extensions": [
3514
+ ".metals-buildtarget"
3515
+ ]
3516
+ },
3526
3517
  {
3527
3518
  "id": "COBOL",
3528
3519
  "extensions": [
@@ -3705,12 +3696,12 @@ var textMateLanguages = [
3705
3696
  "requirements.txt"
3706
3697
  ],
3707
3698
  "filenamePatterns": [
3708
- "*-constraints.txt",
3709
- "*-requirements.in",
3710
- "*-requirements.txt",
3711
- "constraints-*.txt",
3712
- "requirements-*.in",
3713
- "requirements-*.txt"
3699
+ "**/*-requirements.{txt, in}",
3700
+ "**/*-contstraints.txt",
3701
+ "**/requirements-*.{txt, in}",
3702
+ "**/constraints-*.txt",
3703
+ "**/requirements/*.{txt,in}",
3704
+ "**/constraints/*.txt"
3714
3705
  ],
3715
3706
  "filenames": [
3716
3707
  "constraints.txt",
@@ -3790,7 +3781,8 @@ var textMateLanguages = [
3790
3781
  "R DCF"
3791
3782
  ],
3792
3783
  "filenames": [
3793
- "DESCRIPTION"
3784
+ "DESCRIPTION",
3785
+ ".lintr"
3794
3786
  ]
3795
3787
  },
3796
3788
  {
@@ -4240,6 +4232,10 @@ const loader = {
4240
4232
  };
4241
4233
 
4242
4234
  class SimpleSnippetService {
4235
+ constructor() {
4236
+ _defineProperty(this, "_serviceBrand", void 0);
4237
+ }
4238
+
4243
4239
  isEnabled(snippet) {
4244
4240
  return snippet.snippetIdentifier != null || true;
4245
4241
  }
@@ -4280,8 +4276,30 @@ class SimpleSnippetService {
4280
4276
 
4281
4277
  }
4282
4278
 
4283
- const modeService$1 = monaco.editor.StaticServices.modeService.get();
4284
- monaco.extra.setSnippetSuggestSupport(new monaco.extra.SnippetCompletionProvider(modeService$1, new SimpleSnippetService()));
4279
+ const languageService$1 = monaco.extra.StandaloneServices.get(monaco.languages.ILanguageService);
4280
+ const languageConfigurationService = monaco.extra.StandaloneServices.get(monaco.languages.ILanguageConfigurationService);
4281
+ monaco.extra.setSnippetSuggestSupport(new monaco.extra.SnippetCompletionProvider(languageService$1, new SimpleSnippetService(), languageConfigurationService));
4282
+
4283
+ /* Add custom blocks parsing (for tech.io):
4284
+ // { [autofold]
4285
+ // custom block content
4286
+ // }
4287
+ */
4288
+ const CUSTOM_BLOCK_BEGIN_REGEX = '^\\w*(?:\\/\\/|#).*\\{';
4289
+ const CUSTOM_BLOCK_END_REGEX = '^\\w*(?:\\/\\/|#).*\\}';
4290
+ function addCustomFoldingMarkers(configuration) {
4291
+ var _configuration$foldin, _configuration$foldin2;
4292
+
4293
+ const markers = (_configuration$foldin = configuration.folding) === null || _configuration$foldin === void 0 ? void 0 : _configuration$foldin.markers;
4294
+ return _objectSpread2(_objectSpread2({}, configuration), {}, {
4295
+ folding: _objectSpread2(_objectSpread2({}, (_configuration$foldin2 = configuration.folding) !== null && _configuration$foldin2 !== void 0 ? _configuration$foldin2 : {}), {}, {
4296
+ markers: {
4297
+ start: markers != null ? new RegExp(markers.start.source + '|' + CUSTOM_BLOCK_BEGIN_REGEX) : new RegExp(CUSTOM_BLOCK_BEGIN_REGEX),
4298
+ end: markers != null ? new RegExp(markers.end.source + '|' + CUSTOM_BLOCK_END_REGEX) : new RegExp(CUSTOM_BLOCK_END_REGEX)
4299
+ }
4300
+ })
4301
+ });
4302
+ }
4285
4303
 
4286
4304
  const customAliases = {
4287
4305
  csharp: ['c#'],
@@ -4295,7 +4313,7 @@ const customAliases = {
4295
4313
  sql: ['mysql'],
4296
4314
  postgres: ['postgresql', 'postgres', 'pg', 'postgre']
4297
4315
  };
4298
- const modeService = monaco.editor.StaticServices.modeService.get();
4316
+ const languageService = monaco.extra.StandaloneServices.get(monaco.languages.ILanguageService);
4299
4317
  const languagesIds = Array.from(new Set([...Object.keys(languageLoader), ...textMateLanguages.map(rawLanguage => rawLanguage.id)]));
4300
4318
 
4301
4319
  for (const languageId of languagesIds) {
@@ -4311,9 +4329,44 @@ for (const languageId of languagesIds) {
4311
4329
  aliases: [...((_textMateLanguage$ali = textMateLanguage === null || textMateLanguage === void 0 ? void 0 : textMateLanguage.aliases) !== null && _textMateLanguage$ali !== void 0 ? _textMateLanguage$ali : []), ...((_customAliases$langua = customAliases[languageId]) !== null && _customAliases$langua !== void 0 ? _customAliases$langua : [])],
4312
4330
  mimetypes: textMateLanguage === null || textMateLanguage === void 0 ? void 0 : textMateLanguage.mimetypes
4313
4331
  });
4332
+ monaco.languages.setTokenizationSupportFactory(languageId, {
4333
+ createTokenizationSupport: async () => {
4334
+ return createTextMateTokensProvider(languageId).catch(err => {
4335
+ const monarchLoader = languageLoader[languageId];
4336
+
4337
+ if (monarchLoader != null) {
4338
+ console.warn("Failed to load TextMate grammar for language ".concat(languageId, ", fallback to monarch"), err);
4339
+ monaco.languages.setMonarchTokensProvider(languageId, monarchLoader().then(lang => lang.language));
4340
+ } else {
4341
+ console.warn("Failed to load TextMate grammar for language ".concat(languageId, " and no fallback monarch"), err);
4342
+ }
4343
+
4344
+ return null;
4345
+ });
4346
+ }
4347
+ });
4348
+ }
4349
+ /**
4350
+ * Type is wrong
4351
+ * see https://github.com/microsoft/vscode/blob/cfad2543487c4a8e8f53b4451dbccdc1c2036f41/src/vs/workbench/contrib/codeEditor/browser/languageConfigurationExtensionPoint.ts#L381
4352
+ */
4353
+
4354
+
4355
+ function parseLanguageConfiguration(config) {
4356
+ var _config$folding;
4357
+
4358
+ const markers = (_config$folding = config.folding) === null || _config$folding === void 0 ? void 0 : _config$folding.markers;
4359
+ return _objectSpread2(_objectSpread2({}, config), {}, {
4360
+ folding: config.folding != null ? _objectSpread2(_objectSpread2({}, config.folding), {}, {
4361
+ markers: markers != null ? {
4362
+ start: new RegExp(markers.start),
4363
+ end: new RegExp(markers.end)
4364
+ } : undefined
4365
+ }) : undefined
4366
+ });
4314
4367
  }
4315
4368
 
4316
- modeService.onDidEncounterLanguage(async languageId => {
4369
+ languageService.onDidEncounterLanguage(async languageId => {
4317
4370
  if (languageId === 'plaintext') {
4318
4371
  return;
4319
4372
  }
@@ -4322,39 +4375,25 @@ modeService.onDidEncounterLanguage(async languageId => {
4322
4375
 
4323
4376
  if (loader != null) {
4324
4377
  loader().then(configuration => {
4325
- monaco.extra.handleLanguageConfiguration(languageId, configuration);
4378
+ monaco.extra.handleLanguageConfiguration(languageId, addCustomFoldingMarkers(parseLanguageConfiguration(configuration)));
4326
4379
  }).catch(error => {
4327
4380
  console.error('Unable to load language configuration', error);
4328
4381
  });
4329
4382
  }
4330
-
4331
- const textMateTokenProviderPromise = createTextMateTokensProvider(languageId).catch(err => {
4332
- const monarchLoader = languageLoader[languageId];
4333
-
4334
- if (monarchLoader != null) {
4335
- console.warn("Failed to load TextMate grammar for language ".concat(languageId, ", fallback to monarch"), err);
4336
- monaco.languages.setMonarchTokensProvider(languageId, monarchLoader().then(lang => lang.language));
4337
- } else {
4338
- console.warn("Failed to load TextMate grammar for language ".concat(languageId, " and no fallback monarch"), err);
4339
- }
4340
-
4341
- return null;
4342
- });
4343
- monaco.languages.setTokenizationSupport(languageId, textMateTokenProviderPromise);
4344
4383
  });
4345
4384
 
4346
4385
  function getMonacoLanguage(languageOrModeId) {
4347
- const modeId = modeService.getModeIdForLanguageName(languageOrModeId.toLowerCase());
4386
+ const modeId = languageService.getLanguageIdByLanguageName(languageOrModeId.toLowerCase());
4348
4387
 
4349
4388
  if (modeId != null) {
4350
4389
  return modeId;
4351
4390
  }
4352
4391
 
4353
- if (modeService.isRegisteredMode(languageOrModeId)) {
4392
+ if (languageService.isRegisteredLanguageId(languageOrModeId)) {
4354
4393
  return languageOrModeId;
4355
4394
  }
4356
4395
 
4357
- if (modeService.isRegisteredMode(languageOrModeId.toLowerCase())) {
4396
+ if (languageService.isRegisteredLanguageId(languageOrModeId.toLowerCase())) {
4358
4397
  return languageOrModeId.toLowerCase();
4359
4398
  }
4360
4399
 
@@ -4383,6 +4422,7 @@ var colors = {
4383
4422
  "statusBar.foreground": "#20252a",
4384
4423
  "statusBar.border": "#dadada"
4385
4424
  };
4425
+ var semanticHighlighting = true;
4386
4426
  var semanticTokenColors = {
4387
4427
  "*.static": {
4388
4428
  fontStyle: "italic"
@@ -4990,11 +5030,12 @@ var defaultTMTheme = {
4990
5030
  $schema: $schema,
4991
5031
  type: type,
4992
5032
  colors: colors,
5033
+ semanticHighlighting: semanticHighlighting,
4993
5034
  semanticTokenColors: semanticTokenColors,
4994
5035
  tokenColors: tokenColors
4995
5036
  };
4996
5037
 
4997
- const ThemeClass = monaco.editor.StaticServices.standaloneThemeService.get().getColorTheme().constructor;
5038
+ const ThemeClass = monaco.extra.StandaloneServices.get(monaco.editor.IStandaloneThemeService).getColorTheme().constructor;
4998
5039
 
4999
5040
  ThemeClass.prototype.getTokenStyleMetadata = function (type, modifiers, modelLanguage, useDefault, definitions) {
5000
5041
  const themeData = getThemeData(this.themeName);
@@ -5024,7 +5065,7 @@ configurationRegistry.registerDefaultConfigurations([{
5024
5065
  configurationRegistry.registerDefaultConfigurations([{
5025
5066
  overrides: extensions.configurationDefaults
5026
5067
  }]);
5027
- const simpleConfigurationService = monaco.editor.StaticServices.configurationService.get();
5068
+ const simpleConfigurationService = monaco.extra.StandaloneServices.get(monaco.extra.IConfigurationService);
5028
5069
  const onConfigurationChanged = simpleConfigurationService.onDidChangeConfiguration;
5029
5070
  function getConfiguration(language) {
5030
5071
  let section = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'editor';
@@ -5090,9 +5131,11 @@ function openNewCodeEditor(model) {
5090
5131
  return editor;
5091
5132
  }
5092
5133
 
5093
- class MultiEditorStandaloneCodeEditorServiceImpl extends monaco.extra.StandaloneCodeEditorServiceImpl {
5094
- constructor(styleSheet, contextKeyService, themeService, modelResolverService) {
5095
- super(styleSheet, contextKeyService, themeService);
5134
+ class MultiEditorStandaloneCodeEditorServiceImpl extends monaco.extra.StandaloneCodeEditorService {
5135
+ constructor(contextKeyService, themeService, modelResolverService) {
5136
+ super(contextKeyService, themeService);
5137
+
5138
+ _defineProperty(this, "modelResolverService", void 0);
5096
5139
 
5097
5140
  _defineProperty(this, "handlers", []);
5098
5141
 
@@ -5124,7 +5167,7 @@ class MultiEditorStandaloneCodeEditorServiceImpl extends monaco.extra.Standalone
5124
5167
  }
5125
5168
 
5126
5169
  if (modelEditor == null) {
5127
- const codeEditors = monaco.editor.StaticServices.codeEditorService.get().listCodeEditors();
5170
+ const codeEditors = monaco.extra.StandaloneServices.get(monaco.extra.ICodeEditorService).listCodeEditors();
5128
5171
  modelEditor = codeEditors.find(editor => editor.getModel() === model);
5129
5172
  }
5130
5173
 
@@ -5176,13 +5219,20 @@ class MultiEditorStandaloneCodeEditorServiceImpl extends monaco.extra.Standalone
5176
5219
 
5177
5220
  class SimpleResolvedModel {
5178
5221
  constructor(model, readonly) {
5179
- _defineProperty(this, "disposed", false);
5180
-
5181
5222
  this.model = model;
5182
5223
  this.readonly = readonly;
5224
+
5225
+ _defineProperty(this, "_onWillDispose", void 0);
5226
+
5227
+ _defineProperty(this, "disposed", false);
5228
+
5183
5229
  this._onWillDispose = new monaco.Emitter();
5184
5230
  }
5185
5231
 
5232
+ getLanguageId() {
5233
+ return this.model.getLanguageId();
5234
+ }
5235
+
5186
5236
  get onWillDispose() {
5187
5237
  return this._onWillDispose.event;
5188
5238
  }
@@ -5334,7 +5384,7 @@ class ResourceModelCollection extends monaco.extra.ReferenceCollection {
5334
5384
 
5335
5385
  }
5336
5386
 
5337
- class EditorModelResolverService extends monaco.extra.SimpleEditorModelResolverService {
5387
+ class TextModelService extends monaco.extra.StandaloneTextModelService {
5338
5388
  // eslint-disable-next-line @typescript-eslint/no-useless-constructor
5339
5389
  constructor(modelService) {
5340
5390
  super(modelService);
@@ -5451,7 +5501,7 @@ function setup$1(editor) {
5451
5501
  label: 'Fold all autofold regions',
5452
5502
  run: async editor => {
5453
5503
  const foldingController = monaco.extra.FoldingController.get(editor);
5454
- const foldingModelPromise = foldingController.getFoldingModel();
5504
+ const foldingModelPromise = foldingController === null || foldingController === void 0 ? void 0 : foldingController.getFoldingModel();
5455
5505
 
5456
5506
  if (foldingModelPromise != null) {
5457
5507
  return foldingModelPromise.then(foldingModel => {
@@ -5474,24 +5524,28 @@ function setup(editor) {
5474
5524
  setup$1(editor);
5475
5525
  }
5476
5526
 
5477
- monaco.editor.StaticServices.configurationService.get().updateValue('files.eol', '\n').catch(err => {
5527
+ const configurationService = monaco.extra.StandaloneServices.get(monaco.extra.IConfigurationService);
5528
+ configurationService.updateValue('files.eol', '\n').catch(err => {
5478
5529
  console.error('Unable to set file eol', err);
5479
5530
  });
5480
- const editorModelResolverService = new EditorModelResolverService(monaco.editor.StaticServices.modelService.get());
5481
- const multiEditorStandaloneCodeEditorServiceImpl = new MultiEditorStandaloneCodeEditorServiceImpl(null, monaco.editor.StaticServices.contextKeyService.get(), monaco.editor.StaticServices.standaloneThemeService.get(), editorModelResolverService);
5531
+ monaco.errorHandler.setUnexpectedErrorHandler(error => {
5532
+ console.warn('Unexpected error', error);
5533
+ });
5534
+ const textModelService = new TextModelService(monaco.extra.StandaloneServices.get(monaco.extra.IModelService));
5535
+ const multiEditorStandaloneCodeEditorServiceImpl = new MultiEditorStandaloneCodeEditorServiceImpl(monaco.extra.StandaloneServices.get(monaco.extra.IContextKeyService), monaco.extra.StandaloneServices.get(monaco.editor.IStandaloneThemeService), textModelService);
5536
+ monaco.extra.StandaloneServices.initialize({
5537
+ codeEditorService: multiEditorStandaloneCodeEditorServiceImpl,
5538
+ textModelService
5539
+ });
5482
5540
 
5483
5541
  function createEditor(domElement, options, override) {
5484
- const editor = monaco.editor.create(domElement, options, _objectSpread2({
5485
- codeEditorService: multiEditorStandaloneCodeEditorServiceImpl,
5486
- textModelService: editorModelResolverService
5487
- }, override));
5488
- editorModelResolverService.setEditor(editor);
5542
+ const editor = monaco.editor.create(domElement, options, override);
5489
5543
  setup(editor);
5490
5544
  return editor;
5491
5545
  }
5492
5546
 
5493
5547
  function registerTextModelContentProvider(scheme, provider) {
5494
- return editorModelResolverService.registerTextModelContentProvider(scheme, provider);
5548
+ return textModelService.registerTextModelContentProvider(scheme, provider);
5495
5549
  }
5496
5550
 
5497
5551
  function registerEditorOpenHandler(handler) {
@@ -97,6 +97,24 @@ var markdownBasicsMarkdown = {
97
97
  prefix: "strikethrough",
98
98
  body: "~~${1:${TM_SELECTED_TEXT}}~~",
99
99
  description: "Insert strikethrough"
100
+ },
101
+ "Insert inline math": {
102
+ prefix: [
103
+ "inline math"
104
+ ],
105
+ body: "$${1:${TM_SELECTED_TEXT}}$",
106
+ description: "Insert inline math"
107
+ },
108
+ "Insert fenced math": {
109
+ prefix: [
110
+ "fenced math"
111
+ ],
112
+ body: [
113
+ "$$",
114
+ "${1:${TM_SELECTED_TEXT}}",
115
+ "$$"
116
+ ],
117
+ description: "Insert fenced math"
100
118
  }
101
119
  };
102
120