[json] Adapt language status indicator. Fixes #137288

This commit is contained in:
Martin Aeschlimann
2021-11-18 14:46:54 +01:00
parent 8c64e1ec31
commit 6651f8ab43
7 changed files with 121 additions and 7 deletions

View File

@@ -16,6 +16,8 @@ import { RequestService, basename, resolvePath } from './requests';
type ISchemaAssociations = Record<string, string[]>;
type JSONLanguageStatus = { schemas: string[] };
namespace SchemaAssociationNotification {
export const type: NotificationType<ISchemaAssociations | SchemaConfiguration[]> = new NotificationType('json/schemaAssociations');
}
@@ -36,6 +38,10 @@ namespace ForceValidateRequest {
export const type: RequestType<string, Diagnostic[], any> = new RequestType('json/validate');
}
namespace LanguageStatusRequest {
export const type: RequestType<string, JSONLanguageStatus, any> = new RequestType('json/languageStatus');
}
const workspaceContext = {
resolveRelativePath: (relativePath: string, resource: string) => {
@@ -277,6 +283,16 @@ export function startServer(connection: Connection, runtime: RuntimeEnvironment)
});
});
connection.onRequest(LanguageStatusRequest.type, async uri => {
const document = documents.get(uri);
if (document) {
const jsonDocument = getJSONDocument(document);
return languageService.getLanguageStatus(document, jsonDocument);
} else {
return { schemas: [] };
}
});
function updateConfiguration() {
const languageSettings = {
validate: true,