diff --git a/src/managers/builtin/sysPythonManager.ts b/src/managers/builtin/sysPythonManager.ts index 505d940a..bcdf9888 100644 --- a/src/managers/builtin/sysPythonManager.ts +++ b/src/managers/builtin/sysPythonManager.ts @@ -68,9 +68,11 @@ export class SysPythonManager implements EnvironmentManager { this._initialized = createDeferred(); - await this.internalRefresh(false, SysManagerStrings.sysManagerDiscovering); - - this._initialized.resolve(); + try { + await this.internalRefresh(false, SysManagerStrings.sysManagerDiscovering); + } finally { + this._initialized.resolve(); + } } refresh(_scope: RefreshEnvironmentsScope): Promise { diff --git a/src/managers/conda/condaEnvManager.ts b/src/managers/conda/condaEnvManager.ts index 2da30098..45f31d9d 100644 --- a/src/managers/conda/condaEnvManager.ts +++ b/src/managers/conda/condaEnvManager.ts @@ -86,21 +86,24 @@ export class CondaEnvManager implements EnvironmentManager, Disposable { this._initialized = createDeferred(); - await withProgress( - { - location: ProgressLocation.Window, - title: CondaStrings.condaDiscovering, - }, - async () => { - this.collection = await refreshCondaEnvs(false, this.nativeFinder, this.api, this.log, this); - await this.loadEnvMap(); - - this._onDidChangeEnvironments.fire( - this.collection.map((e) => ({ environment: e, kind: EnvironmentChangeKind.add })), - ); - }, - ); - this._initialized.resolve(); + try { + await withProgress( + { + location: ProgressLocation.Window, + title: CondaStrings.condaDiscovering, + }, + async () => { + this.collection = await refreshCondaEnvs(false, this.nativeFinder, this.api, this.log, this); + await this.loadEnvMap(); + + this._onDidChangeEnvironments.fire( + this.collection.map((e) => ({ environment: e, kind: EnvironmentChangeKind.add })), + ); + }, + ); + } finally { + this._initialized.resolve(); + } } async getEnvironments(scope: GetEnvironmentsScope): Promise { diff --git a/src/managers/pipenv/pipenvManager.ts b/src/managers/pipenv/pipenvManager.ts index 3caba8bb..81a3b5cf 100644 --- a/src/managers/pipenv/pipenvManager.ts +++ b/src/managers/pipenv/pipenvManager.ts @@ -49,7 +49,10 @@ export class PipenvManager implements EnvironmentManager { private _initialized: Deferred | undefined; - constructor(public readonly nativeFinder: NativePythonFinder, public readonly api: PythonEnvironmentApi) { + constructor( + public readonly nativeFinder: NativePythonFinder, + public readonly api: PythonEnvironmentApi, + ) { this.name = 'pipenv'; this.displayName = 'Pipenv'; this.preferredPackageManagerId = 'ms-python.python:pip'; @@ -70,21 +73,24 @@ export class PipenvManager implements EnvironmentManager { this._initialized = createDeferred(); - await withProgress( - { - location: ProgressLocation.Window, - title: PipenvStrings.pipenvDiscovering, - }, - async () => { - this.collection = await refreshPipenv(false, this.nativeFinder, this.api, this); - await this.loadEnvMap(); - - this._onDidChangeEnvironments.fire( - this.collection.map((e) => ({ environment: e, kind: EnvironmentChangeKind.add })), - ); - }, - ); - this._initialized.resolve(); + try { + await withProgress( + { + location: ProgressLocation.Window, + title: PipenvStrings.pipenvDiscovering, + }, + async () => { + this.collection = await refreshPipenv(false, this.nativeFinder, this.api, this); + await this.loadEnvMap(); + + this._onDidChangeEnvironments.fire( + this.collection.map((e) => ({ environment: e, kind: EnvironmentChangeKind.add })), + ); + }, + ); + } finally { + this._initialized.resolve(); + } } private async loadEnvMap() { diff --git a/src/managers/poetry/poetryManager.ts b/src/managers/poetry/poetryManager.ts index 12652ecc..dc2a3e6d 100644 --- a/src/managers/poetry/poetryManager.ts +++ b/src/managers/poetry/poetryManager.ts @@ -44,7 +44,10 @@ export class PoetryManager implements EnvironmentManager, Disposable { private readonly _onDidChangeEnvironments = new EventEmitter(); public readonly onDidChangeEnvironments = this._onDidChangeEnvironments.event; - constructor(private readonly nativeFinder: NativePythonFinder, private readonly api: PythonEnvironmentApi) { + constructor( + private readonly nativeFinder: NativePythonFinder, + private readonly api: PythonEnvironmentApi, + ) { this.name = 'poetry'; this.displayName = 'Poetry'; this.preferredPackageManagerId = 'ms-python.python:poetry'; @@ -71,21 +74,24 @@ export class PoetryManager implements EnvironmentManager, Disposable { this._initialized = createDeferred(); - await withProgress( - { - location: ProgressLocation.Window, - title: PoetryStrings.poetryDiscovering, - }, - async () => { - this.collection = await refreshPoetry(false, this.nativeFinder, this.api, this); - await this.loadEnvMap(); - - this._onDidChangeEnvironments.fire( - this.collection.map((e) => ({ environment: e, kind: EnvironmentChangeKind.add })), - ); - }, - ); - this._initialized.resolve(); + try { + await withProgress( + { + location: ProgressLocation.Window, + title: PoetryStrings.poetryDiscovering, + }, + async () => { + this.collection = await refreshPoetry(false, this.nativeFinder, this.api, this); + await this.loadEnvMap(); + + this._onDidChangeEnvironments.fire( + this.collection.map((e) => ({ environment: e, kind: EnvironmentChangeKind.add })), + ); + }, + ); + } finally { + this._initialized.resolve(); + } } async getEnvironments(scope: GetEnvironmentsScope): Promise { diff --git a/src/managers/pyenv/pyenvManager.ts b/src/managers/pyenv/pyenvManager.ts index d4ddb46d..4eaacd64 100644 --- a/src/managers/pyenv/pyenvManager.ts +++ b/src/managers/pyenv/pyenvManager.ts @@ -44,7 +44,10 @@ export class PyEnvManager implements EnvironmentManager, Disposable { private readonly _onDidChangeEnvironments = new EventEmitter(); public readonly onDidChangeEnvironments = this._onDidChangeEnvironments.event; - constructor(private readonly nativeFinder: NativePythonFinder, private readonly api: PythonEnvironmentApi) { + constructor( + private readonly nativeFinder: NativePythonFinder, + private readonly api: PythonEnvironmentApi, + ) { this.name = 'pyenv'; this.displayName = 'PyEnv'; this.preferredPackageManagerId = 'ms-python.python:pip'; @@ -71,21 +74,24 @@ export class PyEnvManager implements EnvironmentManager, Disposable { this._initialized = createDeferred(); - await withProgress( - { - location: ProgressLocation.Window, - title: PyenvStrings.pyenvDiscovering, - }, - async () => { - this.collection = await refreshPyenv(false, this.nativeFinder, this.api, this); - await this.loadEnvMap(); - - this._onDidChangeEnvironments.fire( - this.collection.map((e) => ({ environment: e, kind: EnvironmentChangeKind.add })), - ); - }, - ); - this._initialized.resolve(); + try { + await withProgress( + { + location: ProgressLocation.Window, + title: PyenvStrings.pyenvDiscovering, + }, + async () => { + this.collection = await refreshPyenv(false, this.nativeFinder, this.api, this); + await this.loadEnvMap(); + + this._onDidChangeEnvironments.fire( + this.collection.map((e) => ({ environment: e, kind: EnvironmentChangeKind.add })), + ); + }, + ); + } finally { + this._initialized.resolve(); + } } async getEnvironments(scope: GetEnvironmentsScope): Promise {