Skip to content

Commit 1d63085

Browse files
committed
fix: only show shells that need startup update
1 parent b86b8e1 commit 1d63085

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

src/features/terminal/startup/activateUsingShellStartup.ts

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { ConfigurationChangeEvent, Disposable, GlobalEnvironmentVariableCollection } from 'vscode';
22
import { getWorkspaceFolder, getWorkspaceFolders, onDidChangeConfiguration } from '../../../common/workspace.apis';
33
import { getAutoActivationType, setAutoActivationType } from '../utils';
4-
import { ShellScriptEditState, ShellSetupState, ShellStartupProvider } from './startupProvider';
4+
import { ShellScriptEditState, ShellStartupProvider } from './startupProvider';
55
import { DidChangeEnvironmentEventArgs } from '../../../api';
66
import { EnvironmentManagers } from '../../../internal.api';
77
import { traceError, traceInfo } from '../../../common/logging';
@@ -85,18 +85,26 @@ export class ShellStartupActivationManagerImpl implements ShellStartupActivation
8585
}
8686
}
8787

88-
private async isSetupRequired(): Promise<boolean> {
89-
const results = await Promise.all(this.shellStartupProviders.map((provider) => provider.isSetup()));
90-
return results
91-
.filter((r) => r !== ShellSetupState.NotInstalled)
92-
.some((result) => result === ShellSetupState.NotSetup);
88+
private async getSetupRequired(): Promise<ShellStartupProvider[]> {
89+
const providers: ShellStartupProvider[] = [];
90+
91+
await Promise.all(
92+
this.shellStartupProviders.map(async (provider) => {
93+
if (await provider.isSetup()) {
94+
providers.push(provider);
95+
}
96+
}),
97+
);
98+
99+
return providers;
93100
}
94101

95102
public async initialize(): Promise<void> {
96103
const autoActType = getAutoActivationType();
97104
if (autoActType === 'shellStartup') {
98-
if (await this.isSetupRequired()) {
99-
const shells = this.shellStartupProviders.map((provider) => provider.name).join(', ');
105+
const providers = await this.getSetupRequired();
106+
if (providers.length > 0) {
107+
const shells = providers.map((provider) => provider.name).join(', ');
100108
const result = await showInformationMessage(
101109
ShellStartupActivationStrings.shellStartupScriptEditPrompt,
102110
{ modal: true, detail: `${ShellStartupActivationStrings.updatingTheseProfiles}: ${shells}` },

0 commit comments

Comments
 (0)