Skip to content

Commit 46e133b

Browse files
Ensure activate button is not shown on task terminals (#131)
Fixes #130 For #27 --------- Co-authored-by: Copilot <[email protected]>
1 parent 46c9291 commit 46e133b

File tree

3 files changed

+14
-9
lines changed

3 files changed

+14
-9
lines changed

src/features/terminal/activateMenuButton.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { PythonEnvironment } from '../../api';
66
import { isActivatableEnvironment } from '../common/activation';
77
import { executeCommand } from '../../common/command.api';
88
import { getWorkspaceFolders } from '../../common/workspace.apis';
9+
import { isTaskTerminal } from './utils';
910

1011
async function getDistinctProjectEnvs(pm: PythonProjectManager, em: EnvironmentManagers): Promise<PythonEnvironment[]> {
1112
const projects = pm.getProjects();
@@ -99,9 +100,13 @@ export async function setActivateMenuButtonContext(
99100
terminal: Terminal,
100101
env: PythonEnvironment,
101102
): Promise<void> {
102-
const activatable = isActivatableEnvironment(env);
103+
const activatable = !isTaskTerminal(terminal) && isActivatableEnvironment(env);
103104
await executeCommand('setContext', 'pythonTerminalActivation', activatable);
104105

106+
if (!activatable) {
107+
return;
108+
}
109+
105110
if (tm.isActivated(terminal)) {
106111
await executeCommand('setContext', 'pythonTerminalActivated', true);
107112
} else {

src/features/terminal/terminalManager.ts

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ import { createDeferred } from '../../common/utils/deferred';
2727
import { traceError, traceVerbose } from '../../common/logging';
2828
import { getConfiguration } from '../../common/workspace.apis';
2929
import { EnvironmentManagers, PythonProjectManager } from '../../internal.api';
30-
import { waitForShellIntegration } from './utils';
30+
import { isTaskTerminal, waitForShellIntegration } from './utils';
3131
import { setActivateMenuButtonContext } from './activateMenuButton';
3232

3333
export interface TerminalActivation {
@@ -382,13 +382,8 @@ export class TerminalManagerImpl implements TerminalManager {
382382
return env?.envId.id === environment?.envId.id;
383383
}
384384

385-
private isTaskTerminal(terminal: Terminal): boolean {
386-
// TODO: Need API for core for this https://github.com/microsoft/vscode/issues/234440
387-
return terminal.name.toLowerCase().includes('task');
388-
}
389-
390385
private async activateInternal(terminal: Terminal, environment: PythonEnvironment): Promise<void> {
391-
if (this.isTaskTerminal(terminal)) {
386+
if (isTaskTerminal(terminal)) {
392387
return;
393388
}
394389

@@ -426,7 +421,7 @@ export class TerminalManagerImpl implements TerminalManager {
426421
}
427422

428423
private async deactivateInternal(terminal: Terminal, environment: PythonEnvironment): Promise<void> {
429-
if (this.isTaskTerminal(terminal)) {
424+
if (isTaskTerminal(terminal)) {
430425
return;
431426
}
432427

src/features/terminal/utils.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,8 @@ export async function waitForShellIntegration(terminal: Terminal): Promise<boole
1212
}
1313
return terminal.shellIntegration !== undefined;
1414
}
15+
16+
export function isTaskTerminal(terminal: Terminal): boolean {
17+
// TODO: Need API for core for this https://github.com/microsoft/vscode/issues/234440
18+
return terminal.name.toLowerCase().includes('task');
19+
}

0 commit comments

Comments
 (0)