mirror of
https://github.com/microsoft/monaco-editor.git
synced 2025-12-22 19:42:56 +01:00
Trigger an event when the extra libs changed, redoing all colorization and diagnostics
This commit is contained in:
parent
e39fa719bc
commit
357f54c652
2 changed files with 12 additions and 3 deletions
|
|
@ -134,14 +134,15 @@ export class DiagnostcsAdapter extends Adapter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
let redoDiagosticsCallback = () => {
|
||||||
this._disposables.push(this._defaults.onDidChange(() => {
|
|
||||||
// redo diagnostics when options change
|
// redo diagnostics when options change
|
||||||
for (const model of monaco.editor.getModels()) {
|
for (const model of monaco.editor.getModels()) {
|
||||||
onModelRemoved(model);
|
onModelRemoved(model);
|
||||||
onModelAdd(model);
|
onModelAdd(model);
|
||||||
}
|
}
|
||||||
}));
|
};
|
||||||
|
this._disposables.push(this._defaults.onDidChange(redoDiagosticsCallback));
|
||||||
|
this._disposables.push(this._defaults.onDidExtraLibsChange(redoDiagosticsCallback));
|
||||||
|
|
||||||
monaco.editor.getModels().forEach(onModelAdd);
|
monaco.editor.getModels().forEach(onModelAdd);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,8 @@ import IDisposable = monaco.IDisposable;
|
||||||
export class LanguageServiceDefaultsImpl implements monaco.languages.typescript.LanguageServiceDefaults {
|
export class LanguageServiceDefaultsImpl implements monaco.languages.typescript.LanguageServiceDefaults {
|
||||||
|
|
||||||
private _onDidChange = new Emitter<monaco.languages.typescript.LanguageServiceDefaults>();
|
private _onDidChange = new Emitter<monaco.languages.typescript.LanguageServiceDefaults>();
|
||||||
|
private _onDidExtraLibsChange = new Emitter<monaco.languages.typescript.LanguageServiceDefaults>();
|
||||||
|
|
||||||
private _extraLibs: { [path: string]: { content: string, version: number } };
|
private _extraLibs: { [path: string]: { content: string, version: number } };
|
||||||
private _workerMaxIdleTime: number;
|
private _workerMaxIdleTime: number;
|
||||||
private _eagerModelSync: boolean;
|
private _eagerModelSync: boolean;
|
||||||
|
|
@ -37,6 +39,10 @@ export class LanguageServiceDefaultsImpl implements monaco.languages.typescript.
|
||||||
return this._onDidChange.event;
|
return this._onDidChange.event;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get onDidExtraLibsChange(): IEvent<monaco.languages.typescript.LanguageServiceDefaults> {
|
||||||
|
return this._onDidExtraLibsChange.event;
|
||||||
|
}
|
||||||
|
|
||||||
getExtraLibs(): { [path: string]: string; } {
|
getExtraLibs(): { [path: string]: string; } {
|
||||||
const result = Object.create(null);
|
const result = Object.create(null);
|
||||||
for (var key in this._extraLibs) {
|
for (var key in this._extraLibs) {
|
||||||
|
|
@ -84,6 +90,8 @@ export class LanguageServiceDefaultsImpl implements monaco.languages.typescript.
|
||||||
}
|
}
|
||||||
const client = await worker("");
|
const client = await worker("");
|
||||||
client.syncExtraLibs(this._extraLibs);
|
client.syncExtraLibs(this._extraLibs);
|
||||||
|
// let all listeners know that the extra libs have changed
|
||||||
|
this._onDidExtraLibsChange.fire(this);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue