mirror of
https://github.com/Microsoft/vscode
synced 2024-08-28 05:19:39 +00:00
Clear markdown diagnostics when file is closed (#156912)
This commit is contained in:
parent
13e4a97bf1
commit
3a5a458643
|
@ -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);
|
||||
|
|
|
@ -48,7 +48,7 @@ export async function startServer(connection: Connection) {
|
|||
});
|
||||
|
||||
registerCompletionsSupport(connection, documents, provider, configurationManager);
|
||||
registerValidateSupport(connection, workspace, provider, configurationManager);
|
||||
registerValidateSupport(connection, workspace, provider, configurationManager, logger);
|
||||
|
||||
workspace.workspaceFolders = (params.workspaceFolders ?? []).map(x => URI.parse(x.uri));
|
||||
return {
|
||||
|
|
Loading…
Reference in a new issue