Revert "Implement proposed TerminalState.isShellIntegrationActivated"

This commit is contained in:
Daniel Imms
2024-03-12 10:06:36 -07:00
committed by GitHub
parent a5d5f358ad
commit 490db24926
6 changed files with 5 additions and 56 deletions
@@ -233,10 +233,7 @@ import { assertNoRpc, poll } from '../utils';
test('onDidChangeTerminalState should fire after writing to a terminal', async () => {
const terminal = window.createTerminal();
deepStrictEqual(terminal.state, {
isInteractedWith: false,
isShellIntegrationActivated: false
});
deepStrictEqual(terminal.state, { isInteractedWith: false });
const eventState = await new Promise<TerminalState>(r => {
disposables.push(window.onDidChangeTerminalState(e => {
if (e === terminal) {
@@ -245,8 +242,8 @@ import { assertNoRpc, poll } from '../utils';
}));
terminal.sendText('test');
});
strictEqual(eventState.isInteractedWith, true);
strictEqual(terminal.state.isInteractedWith, true);
deepStrictEqual(eventState, { isInteractedWith: true });
deepStrictEqual(terminal.state, { isInteractedWith: true });
await new Promise<void>(r => {
disposables.push(window.onDidCloseTerminal(t => {
if (t === terminal) {
@@ -84,11 +84,6 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape
this._store.add(_terminalService.onDidChangeActiveInstance(instance => this._onActiveTerminalChanged(instance ? instance.instanceId : null)));
this._store.add(_terminalService.onAnyInstanceTitleChange(instance => instance && this._onTitleChanged(instance.instanceId, instance.title)));
this._store.add(_terminalService.onAnyInstanceDataInput(instance => this._proxy.$acceptTerminalInteraction(instance.instanceId)));
this._store.add(_terminalService.onDidChangeInstanceCapability(instance => {
if (instance.capabilities.has(TerminalCapability.CommandDetection)) {
this._proxy.$acceptTerminalShellIntegrationActivation(instance.instanceId);
}
}));
this._store.add(_terminalService.onAnyInstanceSelectionChange(instance => this._proxy.$acceptTerminalSelection(instance.instanceId, instance.selection)));
// Set initial ext host state
@@ -2238,7 +2238,6 @@ export interface ExtHostTerminalServiceShape {
$acceptTerminalDimensions(id: number, cols: number, rows: number): void;
$acceptTerminalMaximumDimensions(id: number, cols: number, rows: number): void;
$acceptTerminalInteraction(id: number): void;
$acceptTerminalShellIntegrationActivation(id: number): void;
$acceptTerminalSelection(id: number, selection: string | undefined): void;
$startExtensionTerminal(id: number, initialDimensions: ITerminalDimensionsDto | undefined): Promise<ITerminalLaunchError | undefined>;
$acceptProcessAckDataEvent(id: number, charCount: number): void;
@@ -82,10 +82,7 @@ export class ExtHostTerminal {
private _pidPromiseComplete: ((value: number | undefined) => any) | undefined;
private _rows: number | undefined;
private _exitStatus: vscode.TerminalExitStatus | undefined;
private _state: Readonly<vscode.TerminalState> = {
isInteractedWith: false,
isShellIntegrationActivated: false,
};
private _state: vscode.TerminalState = { isInteractedWith: false };
private _selection: string | undefined;
public isOpen: boolean = false;
@@ -243,21 +240,7 @@ export class ExtHostTerminal {
public setInteractedWith(): boolean {
if (!this._state.isInteractedWith) {
this._state = {
...this._state,
isInteractedWith: true,
};
return true;
}
return false;
}
public setShellIntegrationActivated(): boolean {
if (!this._state.isShellIntegrationActivated) {
this._state = {
...this._state,
isShellIntegrationActivated: true,
};
this._state = { isInteractedWith: true };
return true;
}
return false;
@@ -688,13 +671,6 @@ export abstract class BaseExtHostTerminalService extends Disposable implements I
}
}
public $acceptTerminalShellIntegrationActivation(id: number): void {
const terminal = this._getTerminalById(id);
if (terminal?.setShellIntegrationActivated()) {
this._onDidChangeTerminalState.fire(terminal.value);
}
}
public $acceptTerminalSelection(id: number, selection: string | undefined): void {
this._getTerminalById(id)?.setSelection(selection);
}
@@ -110,7 +110,6 @@ export const allApiProposals = Object.freeze({
terminalExecuteCommandEvent: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalExecuteCommandEvent.d.ts',
terminalQuickFixProvider: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalQuickFixProvider.d.ts',
terminalSelection: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalSelection.d.ts',
terminalShellIntegrationActivated: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.terminalShellIntegrationActivated.d.ts',
testCoverage: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.testCoverage.d.ts',
testObserver: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.testObserver.d.ts',
textSearchProvider: 'https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.textSearchProvider.d.ts',
@@ -1,17 +0,0 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
declare module 'vscode' {
// https://github.com/microsoft/vscode/issues/205058
export interface TerminalState {
/**
* Whether the {@link Terminal} has had [shell integration](https://code.visualstudio.com/docs/terminal/shell-integration)
* activated. This typically happens shortly after the terminal has been created.
*/
readonly isShellIntegrationActivated: boolean;
}
}