From aca46ac4a5e873db0b1dc8094dd1a94a0147cf22 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Thu, 6 Feb 2020 11:34:25 -0800 Subject: [PATCH] Take server arguments object Makes it more difficult to mistaktenly reverse which server is which --- .../src/tsServer/server.ts | 18 ++++++++++++------ .../src/tsServer/spawner.ts | 2 +- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/extensions/typescript-language-features/src/tsServer/server.ts b/extensions/typescript-language-features/src/tsServer/server.ts index e7265155d39..33bc66097d3 100644 --- a/extensions/typescript-language-features/src/tsServer/server.ts +++ b/extensions/typescript-language-features/src/tsServer/server.ts @@ -298,21 +298,26 @@ export class ProcessBasedTsServer extends Disposable implements ITypeScriptServe export class SyntaxRoutingTsServer extends Disposable implements ITypeScriptServer { + private readonly syntaxServer: ITypeScriptServer; + private readonly semanticServer: ITypeScriptServer; + public constructor( - private readonly syntaxServer: ITypeScriptServer, - private readonly semanticServer: ITypeScriptServer, + servers: { syntax: ITypeScriptServer, semantic: ITypeScriptServer }, private readonly _delegate: TsServerDelegate, ) { super(); - this._register(syntaxServer.onEvent(e => this._onEvent.fire(e))); - this._register(semanticServer.onEvent(e => this._onEvent.fire(e))); + this.syntaxServer = servers.syntax; + this.semanticServer = servers.semantic; + + this._register(this.syntaxServer.onEvent(e => this._onEvent.fire(e))); + this._register(this.semanticServer.onEvent(e => this._onEvent.fire(e))); - this._register(semanticServer.onExit(e => { + this._register(this.semanticServer.onExit(e => { this._onExit.fire(e); this.syntaxServer.kill(); })); - this._register(semanticServer.onError(e => this._onError.fire(e))); + this._register(this.semanticServer.onError(e => this._onError.fire(e))); } private readonly _onEvent = this._register(new vscode.EventEmitter()); @@ -425,6 +430,7 @@ export class SyntaxRoutingTsServer extends Disposable implements ITypeScriptServ } } + namespace RequestState { export const enum Type { Unresolved, Resolved, Errored } diff --git a/extensions/typescript-language-features/src/tsServer/spawner.ts b/extensions/typescript-language-features/src/tsServer/spawner.ts index 5963a923b7d..fea68951bfd 100644 --- a/extensions/typescript-language-features/src/tsServer/spawner.ts +++ b/extensions/typescript-language-features/src/tsServer/spawner.ts @@ -41,7 +41,7 @@ export class TypeScriptServerSpawner { if (this.shouldUseSeparateSyntaxServer(version, configuration)) { const syntaxServer = this.spawnTsServer('syntax', version, configuration, pluginManager); const semanticServer = this.spawnTsServer('semantic', version, configuration, pluginManager); - return new SyntaxRoutingTsServer(syntaxServer, semanticServer, delegate); + return new SyntaxRoutingTsServer({ syntax: syntaxServer, semantic: semanticServer }, delegate); } return this.spawnTsServer('main', version, configuration, pluginManager); -- GitLab