Skip to content

Commit

Permalink
fix(momnaco-language-apidom): fix VS Code API initialization error (#…
Browse files Browse the repository at this point in the history
…4305)

Error was caused by wrong sequence of
initialization steps.
  • Loading branch information
char0n committed Jul 21, 2023
1 parent cfaa767 commit 2f95cfd
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ export const isLanguageRegistered = () => {

const lazyMonacoContribution = ({ createData, system }) => {
const disposables = [];
const extensionsInitialized = initializeExtensions();

// register apidom language
disposables.push(
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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';
Expand All @@ -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;
Expand Down Expand Up @@ -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) {
Expand Down

0 comments on commit 2f95cfd

Please sign in to comment.