diff --git a/extensions/typescript-language-features/src/tsServer/server.ts b/extensions/typescript-language-features/src/tsServer/server.ts index e7265155d391590eafd97565819978acc284d7b3..33bc66097d369a29f237dee34e7e744f1aafd362 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 5963a923b7d6645c034e00927a8e560383bd944c..fea68951bfd6a7d6cdf6715601b044e4c7ebc68b 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);