From e341158aa0af11a0c08c5a224f674891a2110555 Mon Sep 17 00:00:00 2001 From: Kartik Raj Date: Thu, 7 Jul 2022 16:36:48 -0700 Subject: [PATCH 1/2] Do not fire interpreter change events twice when global scope is modified --- src/client/common/interpreterPathService.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/client/common/interpreterPathService.ts b/src/client/common/interpreterPathService.ts index cf31eaa37d44..9104b6a1a8d6 100644 --- a/src/client/common/interpreterPathService.ts +++ b/src/client/common/interpreterPathService.ts @@ -104,7 +104,6 @@ export class InterpreterPathService implements IInterpreterPathService { const globalValue = pythonConfig.inspect('defaultInterpreterPath')!.globalValue; if (globalValue !== pythonPath) { await pythonConfig.update('defaultInterpreterPath', pythonPath, true); - this._didChangeInterpreterEmitter.fire({ uri: undefined, configTarget }); } return; } From 9aca04687c94dccbf0224db3fa4322c031c3a2ab Mon Sep 17 00:00:00 2001 From: Kartik Raj Date: Thu, 7 Jul 2022 16:37:22 -0700 Subject: [PATCH 2/2] Do not restart language server for Pylance on interpreter change --- src/client/languageServer/watcher.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/client/languageServer/watcher.ts b/src/client/languageServer/watcher.ts index 69bcb7c567d7..c41c856d53af 100644 --- a/src/client/languageServer/watcher.ts +++ b/src/client/languageServer/watcher.ts @@ -303,6 +303,10 @@ export class LanguageServerWatcher // Watch for interpreter changes. private async onDidChangeInterpreter(event: InterpreterConfigurationScope): Promise { + if (this.languageServerType === LanguageServerType.Node) { + // Pylance client already handles interpreter changes, so restarting LS can be skipped. + return Promise.resolve(); + } // Reactivate the language server (if in a multiroot workspace scenario, pick the correct one). return this.activate(event.uri); }