Add MD server tracing and update diagnostics on files changes (#155797)

This commit is contained in:
Matt Bierner
2022-07-21 10:07:06 -07:00
committed by GitHub
parent 9c413ba105
commit b2daf1af82
6 changed files with 34 additions and 13 deletions

View File

@@ -5,6 +5,7 @@
import { Connection, FullDocumentDiagnosticReport, UnchangedDocumentDiagnosticReport } from 'vscode-languageserver';
import * as md from 'vscode-markdown-languageservice';
import { disposeAll } from 'vscode-markdown-languageservice/out/util/dispose';
import { Disposable } from 'vscode-notebook-renderer/events';
import { URI } from 'vscode-uri';
import { ConfigurationManager, ValidateEnabled } from '../configuration';
@@ -53,7 +54,15 @@ export function registerValidateSupport(
diagnosticOptions = getDiagnosticsOptions(config);
}
const subs: Disposable[] = [];
const manager = ls.createPullDiagnosticsManager();
subs.push(manager);
subs.push(manager.onLinkedToFileChanged(() => {
// TODO: We only need to refresh certain files
connection.languages.diagnostics.refresh();
}));
connection.languages.diagnostics.on(async (params, token): Promise<FullDocumentDiagnosticReport | UnchangedDocumentDiagnosticReport> => {
if (!config.getSettings()?.markdown.experimental.validate.enabled) {
@@ -73,14 +82,14 @@ export function registerValidateSupport(
});
updateDiagnosticsSetting();
const configChangeSub = config.onDidChangeConfiguration(() => {
subs.push(config.onDidChangeConfiguration(() => {
updateDiagnosticsSetting();
connection.languages.diagnostics.refresh();
});
}));
return {
dispose: () => {
manager.dispose();
configChangeSub.dispose();
disposeAll(subs);
}
};
}