From 7b22135e4db3fca4180d8ad2f247272d56040553 Mon Sep 17 00:00:00 2001 From: Colen Garoutte-Carson Date: Wed, 3 Apr 2019 18:20:01 -0700 Subject: [PATCH 1/2] Add call to notifyWhenReady, to prevent crash --- Extension/src/LanguageServer/protocolFilter.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Extension/src/LanguageServer/protocolFilter.ts b/Extension/src/LanguageServer/protocolFilter.ts index d81b39b6d..89d1bdb57 100644 --- a/Extension/src/LanguageServer/protocolFilter.ts +++ b/Extension/src/LanguageServer/protocolFilter.ts @@ -23,10 +23,12 @@ export function createProtocolFilter(me: Client, clients: ClientCollection): Mid didOpen: (document, sendMessage) => { if (clients.checkOwnership(me, document)) { me.TrackedDocuments.add(document); - me.provideCustomConfiguration(document).then(() => { - sendMessage(document); - }, () => { - sendMessage(document); + me.notifyWhenReady(() => { + me.provideCustomConfiguration(document).then(() => { + sendMessage(document); + }, () => { + sendMessage(document); + }); }); } }, From e9f32a20418e6a57654c27d1833a5783fd693a3e Mon Sep 17 00:00:00 2001 From: Colen Garoutte-Carson Date: Thu, 4 Apr 2019 10:14:08 -0700 Subject: [PATCH 2/2] Switch to using requestWhenReady() --- Extension/src/LanguageServer/client.ts | 2 +- Extension/src/LanguageServer/protocolFilter.ts | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/Extension/src/LanguageServer/client.ts b/Extension/src/LanguageServer/client.ts index 87ce7a6fc..2bc19cb90 100644 --- a/Extension/src/LanguageServer/client.ts +++ b/Extension/src/LanguageServer/client.ts @@ -640,7 +640,7 @@ class DefaultClient implements Client { let params: QueryTranslationUnitSourceParams = { uri: document.uri.toString() }; - let response: QueryTranslationUnitSourceResult = await this.languageClient.sendRequest(QueryTranslationUnitSourceRequest, params); + let response: QueryTranslationUnitSourceResult = await this.requestWhenReady(() => this.languageClient.sendRequest(QueryTranslationUnitSourceRequest, params)); if (response.configDisposition === QueryTranslationUnitSourceConfigDisposition.ConfigNotNeeded) { return Promise.resolve(); } diff --git a/Extension/src/LanguageServer/protocolFilter.ts b/Extension/src/LanguageServer/protocolFilter.ts index 89d1bdb57..d81b39b6d 100644 --- a/Extension/src/LanguageServer/protocolFilter.ts +++ b/Extension/src/LanguageServer/protocolFilter.ts @@ -23,12 +23,10 @@ export function createProtocolFilter(me: Client, clients: ClientCollection): Mid didOpen: (document, sendMessage) => { if (clients.checkOwnership(me, document)) { me.TrackedDocuments.add(document); - me.notifyWhenReady(() => { - me.provideCustomConfiguration(document).then(() => { - sendMessage(document); - }, () => { - sendMessage(document); - }); + me.provideCustomConfiguration(document).then(() => { + sendMessage(document); + }, () => { + sendMessage(document); }); } },