Quellcode durchsuchen

update markers on settings change

Martin Aeschlimann vor 7 Jahren
Ursprung
Commit
418157fe99
2 geänderte Dateien mit 13 neuen und 3 gelöschten Zeilen
  1. 2 1
      src/htmlMode.ts
  2. 11 2
      src/languageFeatures.ts

+ 2 - 1
src/htmlMode.ts

@@ -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);
 	}
+
 }

+ 11 - 2
src/languageFeatures.ts

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