diff --git a/src/plugins/editor-monaco-language-apidom/language/monaco.contribution.js b/src/plugins/editor-monaco-language-apidom/language/monaco.contribution.js index f5ed1700095..d5d915d44ec 100644 --- a/src/plugins/editor-monaco-language-apidom/language/monaco.contribution.js +++ b/src/plugins/editor-monaco-language-apidom/language/monaco.contribution.js @@ -67,6 +67,7 @@ export const isLanguageRegistered = () => { const lazyMonacoContribution = ({ createData, system }) => { const disposables = []; + const extensionsInitialized = initializeExtensions(); // register apidom language disposables.push( @@ -80,9 +81,11 @@ const lazyMonacoContribution = ({ createData, system }) => { id: apidom.languageId, }) ); - initializeExtensions().then(() => { + + extensionsInitialized.then(() => { disposables.push(vscodeLanguages.setLanguageConfiguration(apidom.languageId, apidom.conf)); }); + disposables.push(monaco.languages.setMonarchTokensProvider(apidom.languageId, apidom.language)); // setup apidom mode diff --git a/src/plugins/editor-monaco-language-apidom/language/providers/DiagnosticsProvider.js b/src/plugins/editor-monaco-language-apidom/language/providers/DiagnosticsProvider.js index 68da19009e0..a9645eae693 100644 --- a/src/plugins/editor-monaco-language-apidom/language/providers/DiagnosticsProvider.js +++ b/src/plugins/editor-monaco-language-apidom/language/providers/DiagnosticsProvider.js @@ -1,5 +1,6 @@ import * as monaco from 'monaco-editor'; import { languages as vscodeLanguages } from 'vscode'; +import { initialize as initializeExtensions } from 'vscode/extensions'; import Provider from './Provider.js'; import * as apidom from '../apidom.js'; @@ -9,13 +10,11 @@ class DiagnosticsProvider extends Provider { #disposables = []; - #diagnosticCollection; + #diagnosticCollection = null; constructor(...args) { super(...args); - this.#diagnosticCollection = vscodeLanguages.createDiagnosticCollection(apidom.languageId); - const onModelAdded = (model) => { if (model.getLanguageId() !== apidom.languageId) { return; @@ -62,10 +61,15 @@ class DiagnosticsProvider extends Provider { } }; + const onExtensionsInitialized = () => { + this.#diagnosticCollection = vscodeLanguages.createDiagnosticCollection(apidom.languageId); + this.#disposables.push(this.#diagnosticCollection); + }; + this.#disposables.push(monaco.editor.onDidCreateModel(onModelAdded)); this.#disposables.push(monaco.editor.onDidChangeModelLanguage(onModelLanguageChanged)); this.#disposables.push(monaco.editor.onWillDisposeModel(onModelRemoved)); - this.#disposables.push(this.#diagnosticCollection); + initializeExtensions().then(onExtensionsInitialized); } async #getDiagnostics(model) {