DiagnosticsSupport for json and html

This commit is contained in:
Martin Aeschlimann
2022-05-19 22:27:28 +02:00
parent aacb387ef1
commit 49944b1501
6 changed files with 87 additions and 75 deletions

View File

@@ -57,7 +57,7 @@ export function startServer(connection: Connection, runtime: RuntimeEnvironment)
let dataProvidersReady: Promise<any> = Promise.resolve();
let diagnosticPushSupport: DiagnosticsSupport | undefined;
let diagnosticsSupport: DiagnosticsSupport | undefined;
const languageServices: { [id: string]: LanguageService } = {};
@@ -103,9 +103,9 @@ export function startServer(connection: Connection, runtime: RuntimeEnvironment)
const pullDiagnosticSupport = getClientCapability('textDocument.diagnostic', undefined);
if (pullDiagnosticSupport === undefined) {
diagnosticPushSupport = registerDiagnosticsPushSupport(documents, connection, runtime, validateTextDocument);
diagnosticsSupport = registerDiagnosticsPushSupport(documents, connection, runtime, validateTextDocument);
} else {
diagnosticPushSupport = registerDiagnosticsPullSupport(documents, connection, runtime, validateTextDocument);
diagnosticsSupport = registerDiagnosticsPullSupport(documents, connection, runtime, validateTextDocument);
}
const capabilities: ServerCapabilities = {
@@ -173,7 +173,7 @@ export function startServer(connection: Connection, runtime: RuntimeEnvironment)
}
// reset all document settings
documentSettings = {};
diagnosticPushSupport?.requestRefresh();
diagnosticsSupport?.requestRefresh();
}
async function validateTextDocument(textDocument: TextDocument): Promise<Diagnostic[]> {

View File

@@ -58,8 +58,6 @@ export function registerDiagnosticsPushSupport(documents: TextDocuments<TextDocu
}, validationDelayMs);
}
documents.all().forEach(triggerValidation);
return {
requestRefresh: () => {
documents.all().forEach(triggerValidation);
@@ -85,7 +83,7 @@ export function registerDiagnosticsPullSupport(documents: TextDocuments<TextDocu
};
}
connection.languages.diagnostics.on(async (params: DocumentDiagnosticParams, token: CancellationToken) => {
const registration = connection.languages.diagnostics.on(async (params: DocumentDiagnosticParams, token: CancellationToken) => {
return runSafeAsync(runtime, async () => {
const document = documents.get(params.textDocument.uri);
if (document) {
@@ -103,6 +101,7 @@ export function registerDiagnosticsPullSupport(documents: TextDocuments<TextDocu
return {
requestRefresh,
dispose: () => {
registration.dispose();
}
};