Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion src/features/terminal/activateMenuButton.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { PythonEnvironment } from '../../api';
import { isActivatableEnvironment } from '../common/activation';
import { executeCommand } from '../../common/command.api';
import { getWorkspaceFolders } from '../../common/workspace.apis';
import { isTaskTerminal } from './utils';

async function getDistinctProjectEnvs(pm: PythonProjectManager, em: EnvironmentManagers): Promise<PythonEnvironment[]> {
const projects = pm.getProjects();
Expand Down Expand Up @@ -99,9 +100,13 @@ export async function setActivateMenuButtonContext(
terminal: Terminal,
env: PythonEnvironment,
): Promise<void> {
const activatable = isActivatableEnvironment(env);
const activatable = isTaskTerminal(terminal) && isActivatableEnvironment(env);
await executeCommand('setContext', 'pythonTerminalActivation', activatable);

if (!activatable) {
return;
}

if (tm.isActivated(terminal)) {
await executeCommand('setContext', 'pythonTerminalActivated', true);
} else {
Expand Down
11 changes: 3 additions & 8 deletions src/features/terminal/terminalManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import { createDeferred } from '../../common/utils/deferred';
import { traceError, traceVerbose } from '../../common/logging';
import { getConfiguration } from '../../common/workspace.apis';
import { EnvironmentManagers, PythonProjectManager } from '../../internal.api';
import { waitForShellIntegration } from './utils';
import { isTaskTerminal, waitForShellIntegration } from './utils';
import { setActivateMenuButtonContext } from './activateMenuButton';

export interface TerminalActivation {
Expand Down Expand Up @@ -382,13 +382,8 @@ export class TerminalManagerImpl implements TerminalManager {
return env?.envId.id === environment?.envId.id;
}

private isTaskTerminal(terminal: Terminal): boolean {
// TODO: Need API for core for this https://github.com/microsoft/vscode/issues/234440
return terminal.name.toLowerCase().includes('task');
}

private async activateInternal(terminal: Terminal, environment: PythonEnvironment): Promise<void> {
if (this.isTaskTerminal(terminal)) {
if (isTaskTerminal(terminal)) {
return;
}

Expand Down Expand Up @@ -426,7 +421,7 @@ export class TerminalManagerImpl implements TerminalManager {
}

private async deactivateInternal(terminal: Terminal, environment: PythonEnvironment): Promise<void> {
if (this.isTaskTerminal(terminal)) {
if (isTaskTerminal(terminal)) {
return;
}

Expand Down
5 changes: 5 additions & 0 deletions src/features/terminal/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,8 @@ export async function waitForShellIntegration(terminal: Terminal): Promise<boole
}
return terminal.shellIntegration !== undefined;
}

export function isTaskTerminal(terminal: Terminal): boolean {
// TODO: Need API for core for this https://github.com/microsoft/vscode/issues/234440
return terminal.name.toLowerCase().includes('task');
}
Loading