_.contribution.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /*!-----------------------------------------------------------------------------
  2. * Copyright (c) Microsoft Corporation. All rights reserved.
  3. * Version: 0.31.1(337587859b1c171314b40503171188b6cea6a32a)
  4. * Released under the MIT license
  5. * https://github.com/microsoft/monaco-editor/blob/main/LICENSE.txt
  6. *-----------------------------------------------------------------------------*/
  7. var __defProp = Object.defineProperty;
  8. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  9. var __getOwnPropNames = Object.getOwnPropertyNames;
  10. var __hasOwnProp = Object.prototype.hasOwnProperty;
  11. var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
  12. var __reExport = (target, module, desc) => {
  13. if (module && typeof module === "object" || typeof module === "function") {
  14. for (let key of __getOwnPropNames(module))
  15. if (!__hasOwnProp.call(target, key) && key !== "default")
  16. __defProp(target, key, { get: () => module[key], enumerable: !(desc = __getOwnPropDesc(module, key)) || desc.enumerable });
  17. }
  18. return target;
  19. };
  20. // src/fillers/monaco-editor-core.ts
  21. var monaco_editor_core_exports = {};
  22. __markAsModule(monaco_editor_core_exports);
  23. __reExport(monaco_editor_core_exports, monaco_editor_core_star);
  24. import * as monaco_editor_core_star from "../editor/editor.api.js";
  25. // src/basic-languages/_.contribution.ts
  26. var languageDefinitions = {};
  27. var lazyLanguageLoaders = {};
  28. var LazyLanguageLoader = class {
  29. static getOrCreate(languageId) {
  30. if (!lazyLanguageLoaders[languageId]) {
  31. lazyLanguageLoaders[languageId] = new LazyLanguageLoader(languageId);
  32. }
  33. return lazyLanguageLoaders[languageId];
  34. }
  35. constructor(languageId) {
  36. this._languageId = languageId;
  37. this._loadingTriggered = false;
  38. this._lazyLoadPromise = new Promise((resolve, reject) => {
  39. this._lazyLoadPromiseResolve = resolve;
  40. this._lazyLoadPromiseReject = reject;
  41. });
  42. }
  43. whenLoaded() {
  44. return this._lazyLoadPromise;
  45. }
  46. load() {
  47. if (!this._loadingTriggered) {
  48. this._loadingTriggered = true;
  49. languageDefinitions[this._languageId].loader().then((mod) => this._lazyLoadPromiseResolve(mod), (err) => this._lazyLoadPromiseReject(err));
  50. }
  51. return this._lazyLoadPromise;
  52. }
  53. };
  54. function loadLanguage(languageId) {
  55. return LazyLanguageLoader.getOrCreate(languageId).load();
  56. }
  57. function registerLanguage(def) {
  58. const languageId = def.id;
  59. languageDefinitions[languageId] = def;
  60. monaco_editor_core_exports.languages.register(def);
  61. const lazyLanguageLoader = LazyLanguageLoader.getOrCreate(languageId);
  62. monaco_editor_core_exports.languages.setMonarchTokensProvider(languageId, lazyLanguageLoader.whenLoaded().then((mod) => mod.language));
  63. monaco_editor_core_exports.languages.onLanguage(languageId, () => {
  64. lazyLanguageLoader.load().then((mod) => {
  65. monaco_editor_core_exports.languages.setLanguageConfiguration(languageId, mod.conf);
  66. });
  67. });
  68. }
  69. export {
  70. loadLanguage,
  71. registerLanguage
  72. };