diff --git a/news/2 Fixes/16291.md b/news/2 Fixes/16291.md new file mode 100644 index 000000000000..717c9eca09a9 --- /dev/null +++ b/news/2 Fixes/16291.md @@ -0,0 +1 @@ +Ensure selected interpreter doesn't change when the extension is starting up and in experiment. diff --git a/src/client/common/configSettings.ts b/src/client/common/configSettings.ts index dd3f628a2d4c..e8602be7ded8 100644 --- a/src/client/common/configSettings.ts +++ b/src/client/common/configSettings.ts @@ -619,7 +619,7 @@ export class PythonSettings implements IPythonSettings { } } - protected initialize(): void { + public initialize(): void { const onDidChange = () => { const currentConfig = this.workspace.getConfiguration('python', this.workspaceRoot); this.update(currentConfig); diff --git a/src/client/common/types.ts b/src/client/common/types.ts index c194d95a7e8f..5dc17b38208c 100644 --- a/src/client/common/types.ts +++ b/src/client/common/types.ts @@ -205,6 +205,7 @@ export interface IPythonSettings { readonly logging: ILoggingSettings; readonly useIsolation: boolean; readonly tensorBoard: ITensorBoardSettings | undefined; + initialize(): void; } export interface ITensorBoardSettings { diff --git a/src/client/extensionActivation.ts b/src/client/extensionActivation.ts index 4d7e36cd7062..7a2c1fede396 100644 --- a/src/client/extensionActivation.ts +++ b/src/client/extensionActivation.ts @@ -175,6 +175,8 @@ async function activateLegacy(ext: ExtensionState): Promise { const manager = serviceContainer.get(IExtensionActivationManager); context.subscriptions.push(manager); + // Settings are dependent on Experiment service, so we need to initialize it after experiments are activated. + serviceContainer.get(IConfigurationService).getSettings().initialize(); await interpreterManager .refresh(workspaceService.hasWorkspaceFolders ? workspaceService.workspaceFolders![0].uri : undefined) .catch((ex) => traceError('Python Extension: interpreterManager.refresh', ex)); diff --git a/src/test/common/configSettings/configSettings.pythonPath.unit.test.ts b/src/test/common/configSettings/configSettings.pythonPath.unit.test.ts index 314282d62e0c..cf54ff32f9ae 100644 --- a/src/test/common/configSettings/configSettings.pythonPath.unit.test.ts +++ b/src/test/common/configSettings/configSettings.pythonPath.unit.test.ts @@ -27,7 +27,7 @@ suite('Python Settings - pythonPath', () => { protected getPythonExecutable(pythonPath: string) { return pythonPath; } - protected initialize() { + public initialize() { noop(); } } diff --git a/src/test/common/configSettings/configSettings.unit.test.ts b/src/test/common/configSettings/configSettings.unit.test.ts index b1cd6e47cc60..c6eee0771ac8 100644 --- a/src/test/common/configSettings/configSettings.unit.test.ts +++ b/src/test/common/configSettings/configSettings.unit.test.ts @@ -33,7 +33,7 @@ suite('Python Settings', async () => { public update(pythonSettings: WorkspaceConfiguration) { return super.update(pythonSettings); } - protected initialize() { + public initialize() { noop(); } }