mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-24 18:49:00 +01:00
Clear markdown diagnostics when file is closed (#156912)
This commit is contained in:
@@ -48,13 +48,13 @@ export function registerValidateSupport(
|
||||
workspace: VsCodeClientWorkspace,
|
||||
ls: md.IMdLanguageService,
|
||||
config: ConfigurationManager,
|
||||
logger: md.ILogger,
|
||||
): Disposable {
|
||||
let diagnosticOptions: md.DiagnosticOptions = defaultDiagnosticOptions;
|
||||
function updateDiagnosticsSetting(): void {
|
||||
diagnosticOptions = getDiagnosticsOptions(config);
|
||||
}
|
||||
|
||||
|
||||
const subs: Disposable[] = [];
|
||||
const manager = ls.createPullDiagnosticsManager();
|
||||
subs.push(manager);
|
||||
@@ -64,14 +64,23 @@ export function registerValidateSupport(
|
||||
connection.languages.diagnostics.refresh();
|
||||
}));
|
||||
|
||||
const emptyDiagnosticsResponse = Object.freeze({ kind: 'full', items: [] });
|
||||
|
||||
connection.languages.diagnostics.on(async (params, token): Promise<FullDocumentDiagnosticReport | UnchangedDocumentDiagnosticReport> => {
|
||||
logger.log(md.LogLevel.Trace, 'Server: connection.languages.diagnostics.on', params.textDocument.uri);
|
||||
|
||||
if (!config.getSettings()?.markdown.experimental.validate.enabled) {
|
||||
return { kind: 'full', items: [] };
|
||||
return emptyDiagnosticsResponse;
|
||||
}
|
||||
|
||||
const document = await workspace.openMarkdownDocument(URI.parse(params.textDocument.uri));
|
||||
const uri = URI.parse(params.textDocument.uri);
|
||||
if (!workspace.hasMarkdownDocument(uri)) {
|
||||
return emptyDiagnosticsResponse;
|
||||
}
|
||||
|
||||
const document = await workspace.openMarkdownDocument(uri);
|
||||
if (!document) {
|
||||
return { kind: 'full', items: [] };
|
||||
return emptyDiagnosticsResponse;
|
||||
}
|
||||
|
||||
const diagnostics = await manager.computeDiagnostics(document, diagnosticOptions, token);
|
||||
|
||||
Reference in New Issue
Block a user