@codingame/monaco-editor-wrapper 1.4.3 → 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.
@@ -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%",
@@ -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
@@ -8,44 +8,20 @@ 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
  }
@@ -2510,8 +2486,8 @@ for (const contribution of extensions.semanticTokenScopes) {
2510
2486
  }
2511
2487
 
2512
2488
  function createGrammarFactory() {
2513
- const modeService = monaco.editor.StaticServices.modeService.get();
2514
- 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)), {}, {
2515
2491
  location: monaco.Uri.file(grammar.scopeName + '.json')
2516
2492
  }));
2517
2493
  return new CGTMGrammarFactory(parsedGrammars, loader$2, onigFile);
@@ -2527,10 +2503,10 @@ function getOrCreateGrammarFactory() {
2527
2503
  return textMateGrammarFactory;
2528
2504
  }
2529
2505
 
2530
- const modeService$2 = monaco.editor.StaticServices.modeService.get();
2506
+ const languageService$2 = monaco.extra.StandaloneServices.get(monaco.languages.ILanguageService);
2531
2507
  async function createTextMateTokensProvider(languageId) {
2532
2508
  const grammarFactory = getOrCreateGrammarFactory();
2533
- const encodedLanguageId = modeService$2.languageIdCodec.encodeLanguageId(languageId);
2509
+ const encodedLanguageId = languageService$2.languageIdCodec.encodeLanguageId(languageId);
2534
2510
  const {
2535
2511
  grammar,
2536
2512
  initialState,
@@ -2543,7 +2519,8 @@ async function createTextMateTokensProvider(languageId) {
2543
2519
 
2544
2520
  const tokenization = new monaco.extra.TMTokenization(grammar, initialState, containsEmbeddedLanguages);
2545
2521
  tokenization.onDidEncounterLanguage(encodedLanguageId => {
2546
- 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));
2547
2524
  });
2548
2525
  return new CGTMTokenizationSupport(languageId, encodedLanguageId, tokenization, grammar);
2549
2526
  }
@@ -2790,7 +2767,8 @@ var textMateLanguages = [
2790
2767
  ".har",
2791
2768
  ".jslintrc",
2792
2769
  ".jsonld",
2793
- ".geojson"
2770
+ ".geojson",
2771
+ ".ipynb"
2794
2772
  ],
2795
2773
  "filenames": [
2796
2774
  "composer.lock",
@@ -3718,12 +3696,12 @@ var textMateLanguages = [
3718
3696
  "requirements.txt"
3719
3697
  ],
3720
3698
  "filenamePatterns": [
3721
- "*-constraints.txt",
3722
- "*-requirements.in",
3723
- "*-requirements.txt",
3724
- "constraints-*.txt",
3725
- "requirements-*.in",
3726
- "requirements-*.txt"
3699
+ "**/*-requirements.{txt, in}",
3700
+ "**/*-contstraints.txt",
3701
+ "**/requirements-*.{txt, in}",
3702
+ "**/constraints-*.txt",
3703
+ "**/requirements/*.{txt,in}",
3704
+ "**/constraints/*.txt"
3727
3705
  ],
3728
3706
  "filenames": [
3729
3707
  "constraints.txt",
@@ -4254,6 +4232,10 @@ const loader = {
4254
4232
  };
4255
4233
 
4256
4234
  class SimpleSnippetService {
4235
+ constructor() {
4236
+ _defineProperty(this, "_serviceBrand", void 0);
4237
+ }
4238
+
4257
4239
  isEnabled(snippet) {
4258
4240
  return snippet.snippetIdentifier != null || true;
4259
4241
  }
@@ -4294,8 +4276,30 @@ class SimpleSnippetService {
4294
4276
 
4295
4277
  }
4296
4278
 
4297
- const modeService$1 = monaco.editor.StaticServices.modeService.get();
4298
- 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
+ }
4299
4303
 
4300
4304
  const customAliases = {
4301
4305
  csharp: ['c#'],
@@ -4309,7 +4313,7 @@ const customAliases = {
4309
4313
  sql: ['mysql'],
4310
4314
  postgres: ['postgresql', 'postgres', 'pg', 'postgre']
4311
4315
  };
4312
- const modeService = monaco.editor.StaticServices.modeService.get();
4316
+ const languageService = monaco.extra.StandaloneServices.get(monaco.languages.ILanguageService);
4313
4317
  const languagesIds = Array.from(new Set([...Object.keys(languageLoader), ...textMateLanguages.map(rawLanguage => rawLanguage.id)]));
4314
4318
 
4315
4319
  for (const languageId of languagesIds) {
@@ -4325,9 +4329,44 @@ for (const languageId of languagesIds) {
4325
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 : [])],
4326
4330
  mimetypes: textMateLanguage === null || textMateLanguage === void 0 ? void 0 : textMateLanguage.mimetypes
4327
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
+ });
4328
4367
  }
4329
4368
 
4330
- modeService.onDidEncounterLanguage(async languageId => {
4369
+ languageService.onDidEncounterLanguage(async languageId => {
4331
4370
  if (languageId === 'plaintext') {
4332
4371
  return;
4333
4372
  }
@@ -4336,39 +4375,25 @@ modeService.onDidEncounterLanguage(async languageId => {
4336
4375
 
4337
4376
  if (loader != null) {
4338
4377
  loader().then(configuration => {
4339
- monaco.extra.handleLanguageConfiguration(languageId, configuration);
4378
+ monaco.extra.handleLanguageConfiguration(languageId, addCustomFoldingMarkers(parseLanguageConfiguration(configuration)));
4340
4379
  }).catch(error => {
4341
4380
  console.error('Unable to load language configuration', error);
4342
4381
  });
4343
4382
  }
4344
-
4345
- const textMateTokenProviderPromise = createTextMateTokensProvider(languageId).catch(err => {
4346
- const monarchLoader = languageLoader[languageId];
4347
-
4348
- if (monarchLoader != null) {
4349
- console.warn("Failed to load TextMate grammar for language ".concat(languageId, ", fallback to monarch"), err);
4350
- monaco.languages.setMonarchTokensProvider(languageId, monarchLoader().then(lang => lang.language));
4351
- } else {
4352
- console.warn("Failed to load TextMate grammar for language ".concat(languageId, " and no fallback monarch"), err);
4353
- }
4354
-
4355
- return null;
4356
- });
4357
- monaco.languages.setTokenizationSupport(languageId, textMateTokenProviderPromise);
4358
4383
  });
4359
4384
 
4360
4385
  function getMonacoLanguage(languageOrModeId) {
4361
- const modeId = modeService.getModeIdForLanguageName(languageOrModeId.toLowerCase());
4386
+ const modeId = languageService.getLanguageIdByLanguageName(languageOrModeId.toLowerCase());
4362
4387
 
4363
4388
  if (modeId != null) {
4364
4389
  return modeId;
4365
4390
  }
4366
4391
 
4367
- if (modeService.isRegisteredMode(languageOrModeId)) {
4392
+ if (languageService.isRegisteredLanguageId(languageOrModeId)) {
4368
4393
  return languageOrModeId;
4369
4394
  }
4370
4395
 
4371
- if (modeService.isRegisteredMode(languageOrModeId.toLowerCase())) {
4396
+ if (languageService.isRegisteredLanguageId(languageOrModeId.toLowerCase())) {
4372
4397
  return languageOrModeId.toLowerCase();
4373
4398
  }
4374
4399
 
@@ -4397,6 +4422,7 @@ var colors = {
4397
4422
  "statusBar.foreground": "#20252a",
4398
4423
  "statusBar.border": "#dadada"
4399
4424
  };
4425
+ var semanticHighlighting = true;
4400
4426
  var semanticTokenColors = {
4401
4427
  "*.static": {
4402
4428
  fontStyle: "italic"
@@ -5004,11 +5030,12 @@ var defaultTMTheme = {
5004
5030
  $schema: $schema,
5005
5031
  type: type,
5006
5032
  colors: colors,
5033
+ semanticHighlighting: semanticHighlighting,
5007
5034
  semanticTokenColors: semanticTokenColors,
5008
5035
  tokenColors: tokenColors
5009
5036
  };
5010
5037
 
5011
- const ThemeClass = monaco.editor.StaticServices.standaloneThemeService.get().getColorTheme().constructor;
5038
+ const ThemeClass = monaco.extra.StandaloneServices.get(monaco.editor.IStandaloneThemeService).getColorTheme().constructor;
5012
5039
 
5013
5040
  ThemeClass.prototype.getTokenStyleMetadata = function (type, modifiers, modelLanguage, useDefault, definitions) {
5014
5041
  const themeData = getThemeData(this.themeName);
@@ -5038,7 +5065,7 @@ configurationRegistry.registerDefaultConfigurations([{
5038
5065
  configurationRegistry.registerDefaultConfigurations([{
5039
5066
  overrides: extensions.configurationDefaults
5040
5067
  }]);
5041
- const simpleConfigurationService = monaco.editor.StaticServices.configurationService.get();
5068
+ const simpleConfigurationService = monaco.extra.StandaloneServices.get(monaco.extra.IConfigurationService);
5042
5069
  const onConfigurationChanged = simpleConfigurationService.onDidChangeConfiguration;
5043
5070
  function getConfiguration(language) {
5044
5071
  let section = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'editor';
@@ -5104,9 +5131,11 @@ function openNewCodeEditor(model) {
5104
5131
  return editor;
5105
5132
  }
5106
5133
 
5107
- class MultiEditorStandaloneCodeEditorServiceImpl extends monaco.extra.StandaloneCodeEditorServiceImpl {
5108
- constructor(styleSheet, contextKeyService, themeService, modelResolverService) {
5109
- 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);
5110
5139
 
5111
5140
  _defineProperty(this, "handlers", []);
5112
5141
 
@@ -5138,7 +5167,7 @@ class MultiEditorStandaloneCodeEditorServiceImpl extends monaco.extra.Standalone
5138
5167
  }
5139
5168
 
5140
5169
  if (modelEditor == null) {
5141
- const codeEditors = monaco.editor.StaticServices.codeEditorService.get().listCodeEditors();
5170
+ const codeEditors = monaco.extra.StandaloneServices.get(monaco.extra.ICodeEditorService).listCodeEditors();
5142
5171
  modelEditor = codeEditors.find(editor => editor.getModel() === model);
5143
5172
  }
5144
5173
 
@@ -5190,13 +5219,20 @@ class MultiEditorStandaloneCodeEditorServiceImpl extends monaco.extra.Standalone
5190
5219
 
5191
5220
  class SimpleResolvedModel {
5192
5221
  constructor(model, readonly) {
5193
- _defineProperty(this, "disposed", false);
5194
-
5195
5222
  this.model = model;
5196
5223
  this.readonly = readonly;
5224
+
5225
+ _defineProperty(this, "_onWillDispose", void 0);
5226
+
5227
+ _defineProperty(this, "disposed", false);
5228
+
5197
5229
  this._onWillDispose = new monaco.Emitter();
5198
5230
  }
5199
5231
 
5232
+ getLanguageId() {
5233
+ return this.model.getLanguageId();
5234
+ }
5235
+
5200
5236
  get onWillDispose() {
5201
5237
  return this._onWillDispose.event;
5202
5238
  }
@@ -5348,7 +5384,7 @@ class ResourceModelCollection extends monaco.extra.ReferenceCollection {
5348
5384
 
5349
5385
  }
5350
5386
 
5351
- class EditorModelResolverService extends monaco.extra.SimpleEditorModelResolverService {
5387
+ class TextModelService extends monaco.extra.StandaloneTextModelService {
5352
5388
  // eslint-disable-next-line @typescript-eslint/no-useless-constructor
5353
5389
  constructor(modelService) {
5354
5390
  super(modelService);
@@ -5465,7 +5501,7 @@ function setup$1(editor) {
5465
5501
  label: 'Fold all autofold regions',
5466
5502
  run: async editor => {
5467
5503
  const foldingController = monaco.extra.FoldingController.get(editor);
5468
- const foldingModelPromise = foldingController.getFoldingModel();
5504
+ const foldingModelPromise = foldingController === null || foldingController === void 0 ? void 0 : foldingController.getFoldingModel();
5469
5505
 
5470
5506
  if (foldingModelPromise != null) {
5471
5507
  return foldingModelPromise.then(foldingModel => {
@@ -5488,24 +5524,28 @@ function setup(editor) {
5488
5524
  setup$1(editor);
5489
5525
  }
5490
5526
 
5491
- 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 => {
5492
5529
  console.error('Unable to set file eol', err);
5493
5530
  });
5494
- const editorModelResolverService = new EditorModelResolverService(monaco.editor.StaticServices.modelService.get());
5495
- 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
+ });
5496
5540
 
5497
5541
  function createEditor(domElement, options, override) {
5498
- const editor = monaco.editor.create(domElement, options, _objectSpread2({
5499
- codeEditorService: multiEditorStandaloneCodeEditorServiceImpl,
5500
- textModelService: editorModelResolverService
5501
- }, override));
5502
- editorModelResolverService.setEditor(editor);
5542
+ const editor = monaco.editor.create(domElement, options, override);
5503
5543
  setup(editor);
5504
5544
  return editor;
5505
5545
  }
5506
5546
 
5507
5547
  function registerTextModelContentProvider(scheme, provider) {
5508
- return editorModelResolverService.registerTextModelContentProvider(scheme, provider);
5548
+ return textModelService.registerTextModelContentProvider(scheme, provider);
5509
5549
  }
5510
5550
 
5511
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
 
package/dist/monaco.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import * as monaco from 'monaco-editor';
2
- import './hacks';
3
2
  import './languages';
4
3
  import './theme';
5
4
  import { EditorOpenHandler } from './services/MultiEditorStandaloneCodeEditorService';
package/dist/r2.js CHANGED
@@ -439,7 +439,7 @@ var repository = {
439
439
  "function-declarations": {
440
440
  patterns: [
441
441
  {
442
- match: "((?:`[^`\\\\]*(?:\\\\.[^`\\\\]*)*`)|(?:[[:alpha:].][[:alnum:]._]*))\\s*(<?<-|=(?!=))\\s*(function)",
442
+ match: "((?:`[^`\\\\]*(?:\\\\.[^`\\\\]*)*`)|(?:[[:alpha:].][[:alnum:]._]*))\\s*(<?<-|=(?!=))\\s*(function)(?!\\w)",
443
443
  captures: {
444
444
  "1": {
445
445
  name: "entity.name.function.r"
package/dist/scalameta.js CHANGED
@@ -4,7 +4,7 @@ var scalameta = [
4
4
  "properties": {
5
5
  "metals.serverVersion": {
6
6
  "type": "string",
7
- "default": "0.11.1+97-0ef9a93b-SNAPSHOT",
7
+ "default": "0.11.1+114-58f06ff8-SNAPSHOT",
8
8
  "markdownDescription": "The version of the Metals server artifact. Requires reloading the window.\n\n**Change only if you know what you're doing**",
9
9
  "scope": 3
10
10
  },
@@ -169,6 +169,12 @@ var scalameta = [
169
169
  "type": "string",
170
170
  "markdownDescription": "Optional Eclipse format profile to use.",
171
171
  "scope": 3
172
+ },
173
+ "metals.suggestLatestUpgrade": {
174
+ "type": "boolean",
175
+ "default": false,
176
+ "markdownDescription": "Once in a day, notify if there are new server releases (including snapshots)",
177
+ "scope": 3
172
178
  }
173
179
  }
174
180
  }
@@ -0,0 +1,4 @@
1
+ import * as monaco from 'monaco-editor';
2
+ export declare class CustomFoldingRulesLanguageConfigurationService extends monaco.languages.LanguageConfigurationService {
3
+ getLanguageConfiguration(languageId: string): monaco.languages.ResolvedLanguageConfiguration;
4
+ }
@@ -1,9 +1,9 @@
1
1
  import * as monaco from 'monaco-editor';
2
- import EditorModelResolverService from './EditorModelResolverService';
2
+ import TextModelService from './TextModelService';
3
3
  export declare type EditorOpenHandler = (model: monaco.editor.ITextModel, input: monaco.extra.IResourceEditorInput, editor: monaco.editor.ICodeEditor, sideBySide?: boolean) => Promise<monaco.editor.ICodeEditor | null>;
4
- export default class MultiEditorStandaloneCodeEditorServiceImpl extends monaco.extra.StandaloneCodeEditorServiceImpl {
4
+ export default class MultiEditorStandaloneCodeEditorServiceImpl extends monaco.extra.StandaloneCodeEditorService {
5
5
  private modelResolverService;
6
- constructor(styleSheet: monaco.extra.GlobalStyleSheet | null, contextKeyService: monaco.extra.IContextKeyService, themeService: monaco.editor.IThemeService, modelResolverService: EditorModelResolverService);
6
+ constructor(contextKeyService: monaco.extra.IContextKeyService, themeService: monaco.editor.IThemeService, modelResolverService: TextModelService);
7
7
  private handlers;
8
8
  registerEditorOpenHandler(handler: EditorOpenHandler): monaco.IDisposable;
9
9
  openCodeEditor(input: monaco.extra.IResourceEditorInput, editor: monaco.editor.ICodeEditor, sideBySide?: boolean): Promise<monaco.editor.ICodeEditor | null>;
@@ -0,0 +1,25 @@
1
+ import * as monaco from 'monaco-editor';
2
+ export declare class SimpleResolvedModel implements monaco.extra.IResolvedTextEditorModel {
3
+ private model;
4
+ private readonly;
5
+ private readonly _onWillDispose;
6
+ constructor(model: monaco.editor.ITextModel, readonly: boolean);
7
+ getLanguageId(): string | undefined;
8
+ get onWillDispose(): monaco.IEvent<void>;
9
+ resolve(): Promise<void>;
10
+ get textEditorModel(): monaco.editor.ITextModel;
11
+ createSnapshot(): monaco.editor.ITextSnapshot;
12
+ isReadonly(): boolean;
13
+ private disposed;
14
+ dispose(): void;
15
+ isDisposed(): boolean;
16
+ isResolved(): boolean;
17
+ getMode(): string | undefined;
18
+ }
19
+ export default class TextModelService extends monaco.extra.StandaloneTextModelService {
20
+ private readonly resourceModelCollection;
21
+ private readonly asyncModelCollection;
22
+ constructor(modelService: monaco.extra.IModelService);
23
+ registerTextModelContentProvider(scheme: string, provider: monaco.extra.ITextModelContentProvider): monaco.IDisposable;
24
+ createModelReference(resource: monaco.Uri): Promise<monaco.extra.IReference<monaco.extra.IResolvedTextEditorModel>>;
25
+ }
@@ -6,7 +6,8 @@ export interface IVSCodeTheme {
6
6
  [name: string]: string;
7
7
  };
8
8
  tokenColors: monaco.extra.ITextMateThemingRule[];
9
- semanticTokenColors: Record<string, monaco.extra.ITokenColorizationSetting>;
9
+ semanticTokenColors?: Record<string, monaco.extra.ITokenColorizationSetting>;
10
+ semanticHighlighting?: boolean;
10
11
  }
11
12
  declare function convertTheme(theme: IVSCodeTheme): monaco.editor.IStandaloneThemeData;
12
13
  declare function fixVSCodeThemeColors(vscodeTheme: IVSCodeTheme): IVSCodeTheme;