update markers on settings change

pull/2748/head
Martin Aeschlimann 7 years ago
parent 9c1b72ad0b
commit 418157fe99

@ -31,6 +31,7 @@ export function setupMode(defaults: LanguageServiceDefaultsImpl): void {
if (languageId === 'html') {
monaco.languages.registerDocumentFormattingEditProvider(languageId, new languageFeatures.DocumentFormattingEditProvider(worker));
monaco.languages.registerDocumentRangeFormattingEditProvider(languageId, new languageFeatures.DocumentRangeFormattingEditProvider(worker));
new languageFeatures.DiagnostcsAdapter(languageId, worker);
new languageFeatures.DiagnosticsAdapter(languageId, worker, defaults);
}
}

@ -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) {

Loading…
Cancel
Save