|
@@ -24,12 +24,12 @@ export interface WorkerAccessor {
|
|
|
|
|
|
// --- diagnostics --- ---
|
|
|
|
|
|
-export class DiagnostcsAdapter {
|
|
|
+export class DiagnosticsAdapter {
|
|
|
|
|
|
private _disposables: IDisposable[] = [];
|
|
|
private _listener: { [uri: string]: IDisposable } = Object.create(null);
|
|
|
|
|
|
- constructor(private _languageId: string, private _worker: WorkerAccessor) {
|
|
|
+ constructor(private _languageId: string, private _worker: WorkerAccessor, defaults: LanguageServiceDefaultsImpl) {
|
|
|
const onModelAdd = (model: monaco.editor.IModel): void => {
|
|
|
let modeId = model.getModeId();
|
|
|
if (modeId !== this._languageId) {
|
|
@@ -64,6 +64,15 @@ export class DiagnostcsAdapter {
|
|
|
onModelAdd(event.model);
|
|
|
}));
|
|
|
|
|
|
+ this._disposables.push(defaults.onDidChange(_ => {
|
|
|
+ monaco.editor.getModels().forEach(model => {
|
|
|
+ if (model.getModeId() === this._languageId) {
|
|
|
+ onModelRemoved(model);
|
|
|
+ onModelAdd(model);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }));
|
|
|
+
|
|
|
this._disposables.push({
|
|
|
dispose: () => {
|
|
|
for (let key in this._listener) {
|