From a714ece3daa0fe37d69d85f5d6cd97dba6d5a775 Mon Sep 17 00:00:00 2001 From: Arthur Ozga Date: Mon, 4 Dec 2017 18:11:23 -0800 Subject: [PATCH] add status request --- src/server/protocol.ts | 22 ++++++++++++++++++++++ src/server/session.ts | 4 ++++ 2 files changed, 26 insertions(+) diff --git a/src/server/protocol.ts b/src/server/protocol.ts index 6ba968dd114..6a8ae8f44ac 100644 --- a/src/server/protocol.ts +++ b/src/server/protocol.ts @@ -71,6 +71,7 @@ namespace ts.server.protocol { SignatureHelp = "signatureHelp", /* @internal */ SignatureHelpFull = "signatureHelp-full", + Status = "status", TypeDefinition = "typeDefinition", ProjectInfo = "projectInfo", ReloadProjects = "reloadProjects", @@ -216,6 +217,27 @@ namespace ts.server.protocol { projectFileName?: string; } + /** + * Requests status information from the server + */ + export interface StatusRequest extends Request { + command: CommandTypes.Status; + } + + export interface StatusResponseBody { + /** + * the version of the currently-running server. + */ + version: string; + } + + /** + * Response to StatusRequest + */ + export interface StatusResponse extends Response { + body: StatusResponseBody; + } + /** * Requests a JS Doc comment template for a given position */ diff --git a/src/server/session.ts b/src/server/session.ts index e09701617b8..a6b627bde33 100644 --- a/src/server/session.ts +++ b/src/server/session.ts @@ -1703,6 +1703,10 @@ namespace ts.server { } private handlers = createMapFromTemplate<(request: protocol.Request) => HandlerResponse>({ + [CommandNames.Status]: () => { + const response: protocol.StatusResponseBody = { version }; + return this.requiredResponse(response); + }, [CommandNames.OpenExternalProject]: (request: protocol.OpenExternalProjectRequest) => { this.projectService.openExternalProject(request.arguments, /*suppressRefreshOfInferredProjects*/ false); // TODO: report errors