mirror of
https://github.com/microsoft/vscode.git
synced 2026-07-11 00:59:24 +01:00
Remove ProcessCapability
This commit is contained in:
@@ -551,15 +551,9 @@ export interface ITerminalLaunchError {
|
||||
export interface IProcessReadyEvent {
|
||||
pid: number,
|
||||
cwd: string,
|
||||
capabilities: ProcessCapability[],
|
||||
requiresWindowsMode?: boolean
|
||||
}
|
||||
|
||||
export const enum ProcessCapability {
|
||||
// TODO: Migrate this to use TerminalCapability.NaiveCwdDetection
|
||||
CwdDetection = 'cwdDetection'
|
||||
}
|
||||
|
||||
/**
|
||||
* Primarily driven by the shell integration feature, a terminal capability is the mechanism for
|
||||
* progressively enhancing various features that may not be supported in all terminals/shells.
|
||||
@@ -603,11 +597,6 @@ export interface ITerminalChildProcess {
|
||||
*/
|
||||
shouldPersist: boolean;
|
||||
|
||||
/**
|
||||
* Capabilities of the process, designated when it starts
|
||||
*/
|
||||
capabilities: ProcessCapability[];
|
||||
|
||||
onProcessData: Event<IProcessDataEvent | string>;
|
||||
onProcessReady: Event<IProcessReadyEvent>;
|
||||
onDidChangeProperty: Event<IProcessProperty<any>>;
|
||||
|
||||
@@ -17,7 +17,7 @@ import { ILogService } from 'vs/platform/log/common/log';
|
||||
import { LogLevelChannelClient } from 'vs/platform/log/common/logIpc';
|
||||
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
|
||||
import { RequestStore } from 'vs/platform/terminal/common/requestStore';
|
||||
import { HeartbeatConstants, IHeartbeatService, IProcessDataEvent, IPtyService, IReconnectConstants, IRequestResolveVariablesEvent, IShellLaunchConfig, ITerminalLaunchError, ITerminalProfile, ITerminalsLayoutInfo, TerminalIcon, TerminalIpcChannels, IProcessProperty, TitleEventSource, ProcessPropertyType, ProcessCapability, IProcessPropertyMap, TerminalSettingId, ISerializedTerminalState } from 'vs/platform/terminal/common/terminal';
|
||||
import { HeartbeatConstants, IHeartbeatService, IProcessDataEvent, IPtyService, IReconnectConstants, IRequestResolveVariablesEvent, IShellLaunchConfig, ITerminalLaunchError, ITerminalProfile, ITerminalsLayoutInfo, TerminalIcon, TerminalIpcChannels, IProcessProperty, TitleEventSource, ProcessPropertyType, IProcessPropertyMap, TerminalSettingId, ISerializedTerminalState } from 'vs/platform/terminal/common/terminal';
|
||||
import { registerTerminalPlatformConfiguration } from 'vs/platform/terminal/common/terminalPlatformConfiguration';
|
||||
import { IGetTerminalLayoutInfoArgs, IProcessDetails, IPtyHostProcessReplayEvent, ISetTerminalLayoutInfoArgs } from 'vs/platform/terminal/common/terminalProcess';
|
||||
import { detectAvailableProfiles } from 'vs/platform/terminal/node/terminalProfiles';
|
||||
@@ -64,7 +64,7 @@ export class PtyHostService extends Disposable implements IPtyService {
|
||||
|
||||
private readonly _onProcessData = this._register(new Emitter<{ id: number, event: IProcessDataEvent | string }>());
|
||||
readonly onProcessData = this._onProcessData.event;
|
||||
private readonly _onProcessReady = this._register(new Emitter<{ id: number, event: { pid: number, cwd: string, capabilities: ProcessCapability[] } }>());
|
||||
private readonly _onProcessReady = this._register(new Emitter<{ id: number, event: { pid: number, cwd: string } }>());
|
||||
readonly onProcessReady = this._onProcessReady.event;
|
||||
private readonly _onProcessReplay = this._register(new Emitter<{ id: number, event: IPtyHostProcessReplayEvent }>());
|
||||
readonly onProcessReplay = this._onProcessReplay.event;
|
||||
|
||||
@@ -12,7 +12,7 @@ import { URI } from 'vs/base/common/uri';
|
||||
import { getSystemShell } from 'vs/base/node/shell';
|
||||
import { ILogService } from 'vs/platform/log/common/log';
|
||||
import { RequestStore } from 'vs/platform/terminal/common/requestStore';
|
||||
import { IProcessDataEvent, IProcessReadyEvent, IPtyService, IRawTerminalInstanceLayoutInfo, IReconnectConstants, IRequestResolveVariablesEvent, IShellLaunchConfig, ITerminalInstanceLayoutInfoById, ITerminalLaunchError, ITerminalsLayoutInfo, ITerminalTabLayoutInfoById, TerminalIcon, IProcessProperty, TitleEventSource, ProcessPropertyType, IProcessPropertyMap, IFixedTerminalDimensions, ProcessCapability, IPersistentTerminalProcessLaunchOptions, ICrossVersionSerializedTerminalState, ISerializedTerminalState } from 'vs/platform/terminal/common/terminal';
|
||||
import { IProcessDataEvent, IProcessReadyEvent, IPtyService, IRawTerminalInstanceLayoutInfo, IReconnectConstants, IRequestResolveVariablesEvent, IShellLaunchConfig, ITerminalInstanceLayoutInfoById, ITerminalLaunchError, ITerminalsLayoutInfo, ITerminalTabLayoutInfoById, TerminalIcon, IProcessProperty, TitleEventSource, ProcessPropertyType, IProcessPropertyMap, IFixedTerminalDimensions, IPersistentTerminalProcessLaunchOptions, ICrossVersionSerializedTerminalState, ISerializedTerminalState } from 'vs/platform/terminal/common/terminal';
|
||||
import { TerminalDataBufferer } from 'vs/platform/terminal/common/terminalDataBuffering';
|
||||
import { escapeNonWindowsPath } from 'vs/platform/terminal/common/terminalEnvironment';
|
||||
import { Terminal as XtermTerminal } from 'xterm-headless';
|
||||
@@ -46,7 +46,7 @@ export class PtyService extends Disposable implements IPtyService {
|
||||
readonly onProcessData = this._onProcessData.event;
|
||||
private readonly _onProcessReplay = this._register(new Emitter<{ id: number, event: IPtyHostProcessReplayEvent }>());
|
||||
readonly onProcessReplay = this._onProcessReplay.event;
|
||||
private readonly _onProcessReady = this._register(new Emitter<{ id: number, event: { pid: number, cwd: string, capabilities: ProcessCapability[] } }>());
|
||||
private readonly _onProcessReady = this._register(new Emitter<{ id: number, event: { pid: number, cwd: string } }>());
|
||||
readonly onProcessReady = this._onProcessReady.event;
|
||||
private readonly _onProcessExit = this._register(new Emitter<{ id: number, event: number | undefined }>());
|
||||
readonly onProcessExit = this._onProcessExit.event;
|
||||
@@ -588,7 +588,7 @@ export class PersistentTerminalProcess extends Disposable {
|
||||
this._onPersistentProcessReady.fire();
|
||||
}
|
||||
} else {
|
||||
this._onProcessReady.fire({ pid: this._pid, cwd: this._cwd, capabilities: this._terminalProcess.capabilities, requiresWindowsMode: isWindows && getWindowsBuildNumber() < 21376 });
|
||||
this._onProcessReady.fire({ pid: this._pid, cwd: this._cwd, requiresWindowsMode: isWindows && getWindowsBuildNumber() < 21376 });
|
||||
this._onDidChangeProperty.fire({ type: ProcessPropertyType.Title, value: this._terminalProcess.currentTitle });
|
||||
this._onDidChangeProperty.fire({ type: ProcessPropertyType.ShellType, value: this._terminalProcess.shellType });
|
||||
this.triggerReplay();
|
||||
|
||||
@@ -14,7 +14,7 @@ import { URI } from 'vs/base/common/uri';
|
||||
import { Promises } from 'vs/base/node/pfs';
|
||||
import { localize } from 'vs/nls';
|
||||
import { ILogService } from 'vs/platform/log/common/log';
|
||||
import { FlowControlConstants, IShellLaunchConfig, ITerminalChildProcess, ITerminalLaunchError, IProcessProperty, IProcessPropertyMap as IProcessPropertyMap, ProcessPropertyType, TerminalShellType, ProcessCapability, IProcessReadyEvent } from 'vs/platform/terminal/common/terminal';
|
||||
import { FlowControlConstants, IShellLaunchConfig, ITerminalChildProcess, ITerminalLaunchError, IProcessProperty, IProcessPropertyMap as IProcessPropertyMap, ProcessPropertyType, TerminalShellType, IProcessReadyEvent } from 'vs/platform/terminal/common/terminal';
|
||||
import { ChildProcessMonitor } from 'vs/platform/terminal/node/childProcessMonitor';
|
||||
import { findExecutable, getWindowsBuildNumber } from 'vs/platform/terminal/node/terminalEnvironment';
|
||||
import { WindowsShellHelper } from 'vs/platform/terminal/node/windowsShellHelper';
|
||||
@@ -102,7 +102,6 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess
|
||||
private _delayedResizer: DelayedResizer | undefined;
|
||||
private readonly _initialCwd: string;
|
||||
private readonly _ptyOptions: pty.IPtyForkOptions | pty.IWindowsPtyForkOptions;
|
||||
private _capabilities: ProcessCapability[] = [];
|
||||
|
||||
private _isPtyPaused: boolean = false;
|
||||
private _unacknowledgedCharCount: number = 0;
|
||||
@@ -111,8 +110,6 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess
|
||||
get currentTitle(): string { return this._windowsShellHelper?.shellTitle || this._currentTitle; }
|
||||
get shellType(): TerminalShellType { return this._windowsShellHelper ? this._windowsShellHelper.shellType : undefined; }
|
||||
|
||||
get capabilities(): ProcessCapability[] { return this._capabilities; }
|
||||
|
||||
private readonly _onProcessData = this._register(new Emitter<string>());
|
||||
readonly onProcessData = this._onProcessData.event;
|
||||
private readonly _onProcessReady = this._register(new Emitter<IProcessReadyEvent>());
|
||||
@@ -178,10 +175,6 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess
|
||||
this._register(this._windowsShellHelper.onShellNameChanged(e => this._onDidChangeProperty.fire({ type: ProcessPropertyType.Title, value: e })));
|
||||
});
|
||||
}
|
||||
// Enable the cwd detection capability if the process supports it
|
||||
if (isLinux || isMacintosh) {
|
||||
this.capabilities.push(ProcessCapability.CwdDetection);
|
||||
}
|
||||
}
|
||||
|
||||
async start(): Promise<ITerminalLaunchError | undefined> {
|
||||
@@ -348,7 +341,7 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess
|
||||
}
|
||||
|
||||
private _sendProcessId(pid: number) {
|
||||
this._onProcessReady.fire({ pid, cwd: this._initialCwd, capabilities: this.capabilities, requiresWindowsMode: isWindows && getWindowsBuildNumber() < 21376 });
|
||||
this._onProcessReady.fire({ pid, cwd: this._initialCwd, requiresWindowsMode: isWindows && getWindowsBuildNumber() < 21376 });
|
||||
}
|
||||
|
||||
private _sendProcessTitle(ptyProcess: pty.IPty): void {
|
||||
|
||||
@@ -18,7 +18,7 @@ import { serializeEnvironmentVariableCollection } from 'vs/workbench/contrib/ter
|
||||
import { CancellationTokenSource } from 'vs/base/common/cancellation';
|
||||
import { generateUuid } from 'vs/base/common/uuid';
|
||||
import { ISerializableEnvironmentVariableCollection } from 'vs/workbench/contrib/terminal/common/environmentVariable';
|
||||
import { ICreateContributedTerminalProfileOptions, IProcessReadyEvent, IShellLaunchConfigDto, ITerminalChildProcess, ITerminalLaunchError, ITerminalProfile, TerminalIcon, TerminalLocation, IProcessProperty, ProcessPropertyType, ProcessCapability, IProcessPropertyMap } from 'vs/platform/terminal/common/terminal';
|
||||
import { ICreateContributedTerminalProfileOptions, IProcessReadyEvent, IShellLaunchConfigDto, ITerminalChildProcess, ITerminalLaunchError, ITerminalProfile, TerminalIcon, TerminalLocation, IProcessProperty, ProcessPropertyType, IProcessPropertyMap } from 'vs/platform/terminal/common/terminal';
|
||||
import { TerminalDataBufferer } from 'vs/platform/terminal/common/terminalDataBuffering';
|
||||
import { ThemeColor } from 'vs/platform/theme/common/themeService';
|
||||
import { withNullAsUndefined } from 'vs/base/common/types';
|
||||
@@ -247,8 +247,7 @@ export class ExtHostTerminal {
|
||||
export class ExtHostPseudoterminal implements ITerminalChildProcess {
|
||||
readonly id = 0;
|
||||
readonly shouldPersist = false;
|
||||
private _capabilities: ProcessCapability[] = [];
|
||||
get capabilities(): ProcessCapability[] { return this._capabilities; }
|
||||
|
||||
private readonly _onProcessData = new Emitter<string>();
|
||||
public readonly onProcessData: Event<string> = this._onProcessData.event;
|
||||
private readonly _onProcessReady = new Emitter<IProcessReadyEvent>();
|
||||
@@ -330,7 +329,7 @@ export class ExtHostPseudoterminal implements ITerminalChildProcess {
|
||||
this._pty.setDimensions?.(initialDimensions);
|
||||
}
|
||||
|
||||
this._onProcessReady.fire({ pid: -1, cwd: '', capabilities: this._capabilities });
|
||||
this._onProcessReady.fire({ pid: -1, cwd: '' });
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import { Emitter } from 'vs/base/common/event';
|
||||
import { Disposable } from 'vs/base/common/lifecycle';
|
||||
import { URI } from 'vs/base/common/uri';
|
||||
import { ILogService } from 'vs/platform/log/common/log';
|
||||
import { IProcessDataEvent, ITerminalChildProcess, ITerminalLaunchError, IProcessProperty, IProcessPropertyMap, ProcessPropertyType, ProcessCapability, IProcessReadyEvent } from 'vs/platform/terminal/common/terminal';
|
||||
import { IProcessDataEvent, ITerminalChildProcess, ITerminalLaunchError, IProcessProperty, IProcessPropertyMap, ProcessPropertyType, IProcessReadyEvent } from 'vs/platform/terminal/common/terminal';
|
||||
import { IPtyHostProcessReplayEvent } from 'vs/platform/terminal/common/terminalProcess';
|
||||
import { RemoteTerminalChannelClient } from 'vs/workbench/contrib/terminal/common/remoteTerminalChannel';
|
||||
import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService';
|
||||
@@ -38,9 +38,6 @@ export class RemotePty extends Disposable implements ITerminalChildProcess {
|
||||
overrideDimensions: undefined
|
||||
};
|
||||
|
||||
private _capabilities: ProcessCapability[] = [];
|
||||
get capabilities(): ProcessCapability[] { return this._capabilities; }
|
||||
|
||||
get id(): number { return this._id; }
|
||||
|
||||
constructor(
|
||||
@@ -147,7 +144,6 @@ export class RemotePty extends Disposable implements ITerminalChildProcess {
|
||||
return this._remoteTerminalChannel.processBinary(this._id, e);
|
||||
}
|
||||
handleReady(e: IProcessReadyEvent) {
|
||||
this._capabilities = e.capabilities;
|
||||
this._onProcessReady.fire(e);
|
||||
}
|
||||
handleDidChangeProperty({ type, value }: IProcessProperty<any>) {
|
||||
|
||||
@@ -8,7 +8,7 @@ import { IDisposable } from 'vs/base/common/lifecycle';
|
||||
import { URI } from 'vs/base/common/uri';
|
||||
import { FindReplaceState } from 'vs/editor/contrib/find/findState';
|
||||
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
|
||||
import { IShellLaunchConfig, ITerminalDimensions, ITerminalLaunchError, ITerminalProfile, ITerminalTabLayoutInfoById, TerminalIcon, TitleEventSource, TerminalShellType, IExtensionTerminalProfile, TerminalLocation, ProcessPropertyType, ProcessCapability, IProcessPropertyMap } from 'vs/platform/terminal/common/terminal';
|
||||
import { IShellLaunchConfig, ITerminalDimensions, ITerminalLaunchError, ITerminalProfile, ITerminalTabLayoutInfoById, TerminalIcon, TitleEventSource, TerminalShellType, IExtensionTerminalProfile, TerminalLocation, ProcessPropertyType, IProcessPropertyMap } from 'vs/platform/terminal/common/terminal';
|
||||
import { ICommandTracker, INavigationMode, IRemoteTerminalAttachTarget, IStartExtensionTerminalRequest, ITerminalConfigHelper, ITerminalFont, ITerminalBackend, ITerminalProcessExtHostProxy, IRegisterContributedProfileArgs, IShellIntegration, ITerminalCapabilityStore } from 'vs/workbench/contrib/terminal/common/terminal';
|
||||
import { ITerminalStatusList } from 'vs/workbench/contrib/terminal/browser/terminalStatusList';
|
||||
import { Orientation } from 'vs/base/browser/ui/splitview/splitview';
|
||||
@@ -408,7 +408,6 @@ export interface ITerminalInstance {
|
||||
readonly workspaceFolder?: string;
|
||||
readonly cwd?: string;
|
||||
readonly initialCwd?: string;
|
||||
readonly capabilities: ProcessCapability[];
|
||||
readonly capabilities2: ITerminalCapabilityStore;
|
||||
|
||||
readonly statusList: ITerminalStatusList;
|
||||
|
||||
@@ -38,7 +38,7 @@ import { TypeAheadAddon } from 'vs/workbench/contrib/terminal/browser/terminalTy
|
||||
import { BrowserFeatures } from 'vs/base/browser/canIUse';
|
||||
import { IPreferencesService } from 'vs/workbench/services/preferences/common/preferences';
|
||||
import { IEnvironmentVariableInfo } from 'vs/workbench/contrib/terminal/common/environmentVariable';
|
||||
import { IProcessDataEvent, IShellLaunchConfig, ITerminalDimensionsOverride, ITerminalLaunchError, TerminalShellType, TerminalSettingId, TitleEventSource, TerminalIcon, TerminalLocation, ProcessPropertyType, ProcessCapability, IProcessPropertyMap, WindowsShellType, TerminalCommand, TerminalCapability } from 'vs/platform/terminal/common/terminal';
|
||||
import { IProcessDataEvent, IShellLaunchConfig, ITerminalDimensionsOverride, ITerminalLaunchError, TerminalShellType, TerminalSettingId, TitleEventSource, TerminalIcon, TerminalLocation, ProcessPropertyType, IProcessPropertyMap, WindowsShellType, TerminalCommand, TerminalCapability } from 'vs/platform/terminal/common/terminal';
|
||||
import { IProductService } from 'vs/platform/product/common/productService';
|
||||
import { formatMessageForTerminal } from 'vs/workbench/contrib/terminal/common/terminalStrings';
|
||||
import { AutoOpenBarrier, Promises } from 'vs/base/common/async';
|
||||
@@ -180,8 +180,6 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
|
||||
readonly statusList: ITerminalStatusList;
|
||||
disableLayout: boolean = false;
|
||||
|
||||
// TODO: Replace with capabilities2
|
||||
private _capabilities: ProcessCapability[] = [];
|
||||
private _description?: string;
|
||||
private _processName: string = '';
|
||||
private _sequence?: string;
|
||||
@@ -260,7 +258,6 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
|
||||
get workspaceFolder(): string | undefined { return this._workspaceFolder; }
|
||||
get cwd(): string | undefined { return this._cwd; }
|
||||
get initialCwd(): string | undefined { return this._initialCwd; }
|
||||
get capabilities(): ProcessCapability[] { return this._capabilities; }
|
||||
get description(): string | undefined { return this._description || this.shellLaunchConfig.description; }
|
||||
get userHome(): string | undefined { return this._userHome; }
|
||||
// The onExit event is special in that it fires and is disposed after the terminal instance
|
||||
@@ -940,7 +937,6 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
|
||||
this._widgetManager.attachToElement(xterm.raw.element);
|
||||
this._processManager.onProcessReady((e) => {
|
||||
this._linkManager?.setWidgetManager(this._widgetManager);
|
||||
this._capabilities = e.capabilities;
|
||||
this._workspaceFolder = path.basename(e.cwd.toString());
|
||||
});
|
||||
|
||||
@@ -1182,7 +1178,6 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
|
||||
processManager.onProcessReady(async (e) => {
|
||||
this._onProcessIdReady.fire(this);
|
||||
this._initialCwd = await this.getInitialCwd();
|
||||
this._capabilities = e.capabilities;
|
||||
// Set the initial name based on the _resolved_ shell launch config, this will also
|
||||
// ensure the resolved icon gets shown
|
||||
if (!this._labelComputer) {
|
||||
@@ -2238,7 +2233,7 @@ export class TerminalLabelComputer extends Disposable {
|
||||
if (!reset && this._instance.staticTitle && labelType === TerminalLabelType.Title) {
|
||||
return this._instance.staticTitle.replace(/[\n\r\t]/g, '') || templateProperties.process?.replace(/[\n\r\t]/g, '') || '';
|
||||
}
|
||||
const detection = this._instance.capabilities2.has(TerminalCapability.CwdDetection);
|
||||
const detection = this._instance.capabilities2.has(TerminalCapability.CwdDetection) || this._instance.capabilities2.has(TerminalCapability.NaiveCwdDetection);
|
||||
const zeroRootWorkspace = this._workspaceContextService.getWorkspace().folders.length === 0 && this.pathsEqual(templateProperties.cwd, this._instance.userHome || this._configHelper.config.cwd);
|
||||
const singleRootWorkspace = this._workspaceContextService.getWorkspace().folders.length === 1 && this.pathsEqual(templateProperties.cwd, this._configHelper.config.cwd || this._workspaceContextService.getWorkspace().folders[0]?.uri.fsPath);
|
||||
templateProperties.cwdFolder = (!templateProperties.cwd || !detection || zeroRootWorkspace || singleRootWorkspace) ? '' : path.basename(templateProperties.cwd);
|
||||
|
||||
@@ -5,15 +5,14 @@
|
||||
|
||||
import { Emitter, Event } from 'vs/base/common/event';
|
||||
import { Disposable } from 'vs/base/common/lifecycle';
|
||||
import { IProcessReadyEvent, IShellLaunchConfig, ITerminalChildProcess, ITerminalDimensions, ITerminalLaunchError, IProcessProperty, ProcessPropertyType, ProcessCapability, IProcessPropertyMap } from 'vs/platform/terminal/common/terminal';
|
||||
import { IProcessReadyEvent, IShellLaunchConfig, ITerminalChildProcess, ITerminalDimensions, ITerminalLaunchError, IProcessProperty, ProcessPropertyType, IProcessPropertyMap } from 'vs/platform/terminal/common/terminal';
|
||||
import { ITerminalService } from 'vs/workbench/contrib/terminal/browser/terminal';
|
||||
import { ITerminalProcessExtHostProxy } from 'vs/workbench/contrib/terminal/common/terminal';
|
||||
|
||||
export class TerminalProcessExtHostProxy extends Disposable implements ITerminalChildProcess, ITerminalProcessExtHostProxy {
|
||||
readonly id = 0;
|
||||
readonly shouldPersist = false;
|
||||
private _capabilities: ProcessCapability[] = [];
|
||||
get capabilities(): ProcessCapability[] { return this._capabilities; }
|
||||
|
||||
private readonly _onProcessData = this._register(new Emitter<string>());
|
||||
readonly onProcessData: Event<string> = this._onProcessData.event;
|
||||
private readonly _onProcessReady = this._register(new Emitter<IProcessReadyEvent>());
|
||||
@@ -65,7 +64,7 @@ export class TerminalProcessExtHostProxy extends Disposable implements ITerminal
|
||||
}
|
||||
|
||||
emitReady(pid: number, cwd: string): void {
|
||||
this._onProcessReady.fire({ pid, cwd, capabilities: this.capabilities });
|
||||
this._onProcessReady.fire({ pid, cwd });
|
||||
}
|
||||
|
||||
emitProcessProperty({ type, value }: IProcessProperty<any>): void {
|
||||
|
||||
@@ -18,7 +18,7 @@ import { IEditorService } from 'vs/workbench/services/editor/common/editorServic
|
||||
import { Schemas } from 'vs/base/common/network';
|
||||
import { ILabelService } from 'vs/platform/label/common/label';
|
||||
import { IEnvironmentVariableService, ISerializableEnvironmentVariableCollection } from 'vs/workbench/contrib/terminal/common/environmentVariable';
|
||||
import { IProcessDataEvent, IRequestResolveVariablesEvent, IShellLaunchConfigDto, ITerminalLaunchError, ITerminalProfile, ITerminalsLayoutInfo, ITerminalsLayoutInfoById, TerminalIcon, IProcessProperty, ProcessPropertyType, ProcessCapability, IProcessPropertyMap, TitleEventSource, ISerializedTerminalState, IPtyHostController } from 'vs/platform/terminal/common/terminal';
|
||||
import { IProcessDataEvent, IRequestResolveVariablesEvent, IShellLaunchConfigDto, ITerminalLaunchError, ITerminalProfile, ITerminalsLayoutInfo, ITerminalsLayoutInfoById, TerminalIcon, IProcessProperty, ProcessPropertyType, IProcessPropertyMap, TitleEventSource, ISerializedTerminalState, IPtyHostController } from 'vs/platform/terminal/common/terminal';
|
||||
import { IGetTerminalLayoutInfoArgs, IProcessDetails, IPtyHostProcessReplayEvent, ISetTerminalLayoutInfoArgs } from 'vs/platform/terminal/common/terminalProcess';
|
||||
import { IProcessEnvironment, OperatingSystem } from 'vs/base/common/platform';
|
||||
import { ICompleteTerminalConfiguration } from 'vs/workbench/contrib/terminal/common/terminal';
|
||||
@@ -78,8 +78,8 @@ export class RemoteTerminalChannelClient implements IPtyHostController {
|
||||
get onProcessExit(): Event<{ id: number, event: number | undefined }> {
|
||||
return this._channel.listen<{ id: number, event: number | undefined }>('$onProcessExitEvent');
|
||||
}
|
||||
get onProcessReady(): Event<{ id: number, event: { pid: number, cwd: string, capabilities: ProcessCapability[], requireWindowsMode?: boolean } }> {
|
||||
return this._channel.listen<{ id: number, event: { pid: number, cwd: string, capabilities: ProcessCapability[], requiresWindowsMode?: boolean } }>('$onProcessReadyEvent');
|
||||
get onProcessReady(): Event<{ id: number, event: { pid: number, cwd: string, requireWindowsMode?: boolean } }> {
|
||||
return this._channel.listen<{ id: number, event: { pid: number, cwd: string, requiresWindowsMode?: boolean } }>('$onProcessReadyEvent');
|
||||
}
|
||||
get onProcessReplay(): Event<{ id: number, event: IPtyHostProcessReplayEvent }> {
|
||||
return this._channel.listen<{ id: number, event: IPtyHostProcessReplayEvent }>('$onProcessReplayEvent');
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
import { Emitter } from 'vs/base/common/event';
|
||||
import { Disposable } from 'vs/base/common/lifecycle';
|
||||
import { ILocalPtyService } from 'vs/platform/terminal/electron-sandbox/terminal';
|
||||
import { IProcessDataEvent, ITerminalChildProcess, ITerminalLaunchError, IProcessProperty, IProcessPropertyMap, ProcessPropertyType, ProcessCapability, IProcessReadyEvent } from 'vs/platform/terminal/common/terminal';
|
||||
import { IProcessDataEvent, ITerminalChildProcess, ITerminalLaunchError, IProcessProperty, IProcessPropertyMap, ProcessPropertyType, IProcessReadyEvent } from 'vs/platform/terminal/common/terminal';
|
||||
import { IPtyHostProcessReplayEvent } from 'vs/platform/terminal/common/terminalProcess';
|
||||
import { URI } from 'vs/base/common/uri';
|
||||
|
||||
@@ -26,8 +26,6 @@ export class LocalPty extends Disposable implements ITerminalChildProcess {
|
||||
resolvedShellLaunchConfig: {},
|
||||
overrideDimensions: undefined
|
||||
};
|
||||
private _capabilities: ProcessCapability[] = [];
|
||||
get capabilities(): ProcessCapability[] { return this._capabilities; }
|
||||
private readonly _onProcessData = this._register(new Emitter<IProcessDataEvent | string>());
|
||||
readonly onProcessData = this._onProcessData.event;
|
||||
private readonly _onProcessReplay = this._register(new Emitter<IPtyHostProcessReplayEvent>());
|
||||
@@ -107,7 +105,6 @@ export class LocalPty extends Disposable implements ITerminalChildProcess {
|
||||
this._onProcessExit.fire(e);
|
||||
}
|
||||
handleReady(e: IProcessReadyEvent) {
|
||||
this._capabilities = e.capabilities;
|
||||
this._onProcessReady.fire(e);
|
||||
}
|
||||
handleDidChangeProperty({ type, value }: IProcessProperty<any>) {
|
||||
|
||||
@@ -22,7 +22,7 @@ import { TerminalCapabilityStore } from 'vs/workbench/contrib/terminal/common/ca
|
||||
function createInstance(partial?: Partial<ITerminalInstance>): Pick<ITerminalInstance, 'shellLaunchConfig' | 'userHome' | 'cwd' | 'initialCwd' | 'processName' | 'sequence' | 'workspaceFolder' | 'staticTitle' | 'capabilities2' | 'title' | 'description'> {
|
||||
const capabilities2 = new TerminalCapabilityStore();
|
||||
if (!isWindows) {
|
||||
capabilities2.addCapability(TerminalCapability.CwdDetection);
|
||||
capabilities2.addCapability(TerminalCapability.NaiveCwdDetection);
|
||||
}
|
||||
return {
|
||||
shellLaunchConfig: {},
|
||||
@@ -169,8 +169,7 @@ suite('Workbench - TerminalInstance', () => {
|
||||
instantiationService.stub(IWorkspaceContextService, new TestContextService());
|
||||
capabilities2 = new TerminalCapabilityStore();
|
||||
if (!isWindows) {
|
||||
// TODO: Replace all these with Naive
|
||||
capabilities2.addCapability(TerminalCapability.CwdDetection);
|
||||
capabilities2.addCapability(TerminalCapability.NaiveCwdDetection);
|
||||
}
|
||||
|
||||
const ROOT_1_URI = getUri(ROOT_1);
|
||||
|
||||
@@ -10,7 +10,7 @@ import { listenStream } from 'vs/base/common/stream';
|
||||
import { isDefined } from 'vs/base/common/types';
|
||||
import { localize } from 'vs/nls';
|
||||
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
|
||||
import { IProcessDataEvent, IProcessPropertyMap, IShellLaunchConfig, ITerminalChildProcess, ITerminalDimensionsOverride, ITerminalLaunchError, ProcessCapability, ProcessPropertyType, TerminalLocation, TerminalShellType } from 'vs/platform/terminal/common/terminal';
|
||||
import { IProcessDataEvent, IProcessPropertyMap, IShellLaunchConfig, ITerminalChildProcess, ITerminalDimensionsOverride, ITerminalLaunchError, ProcessPropertyType, TerminalLocation, TerminalShellType } from 'vs/platform/terminal/common/terminal';
|
||||
import { IViewsService } from 'vs/workbench/common/views';
|
||||
import { ITerminalEditorService, ITerminalGroupService, ITerminalInstance, ITerminalService } from 'vs/workbench/contrib/terminal/browser/terminal';
|
||||
import { TERMINAL_VIEW_ID } from 'vs/workbench/contrib/terminal/common/terminal';
|
||||
@@ -164,8 +164,6 @@ class TestOutputProcess extends Disposable implements ITerminalChildProcess {
|
||||
private processDataEmitter = this._register(new Emitter<string | IProcessDataEvent>());
|
||||
private titleEmitter = this._register(new Emitter<string>());
|
||||
private readonly startedDeferred = new DeferredPromise<void>();
|
||||
private _capabilities: ProcessCapability[] = [];
|
||||
get capabilities(): ProcessCapability[] { return this._capabilities; }
|
||||
/** Whether the associated test has ended (indicating the terminal can be reused) */
|
||||
public ended = true;
|
||||
/** Result currently being displayed */
|
||||
@@ -193,14 +191,14 @@ class TestOutputProcess extends Disposable implements ITerminalChildProcess {
|
||||
|
||||
public readonly onProcessData = this.processDataEmitter.event;
|
||||
public readonly onProcessExit = this._register(new Emitter<number | undefined>()).event;
|
||||
private readonly _onProcessReady = this._register(new Emitter<{ pid: number; cwd: string; capabilities: ProcessCapability[] }>());
|
||||
private readonly _onProcessReady = this._register(new Emitter<{ pid: number; cwd: string }>());
|
||||
public readonly onProcessReady = this._onProcessReady.event;
|
||||
public readonly onProcessTitleChanged = this.titleEmitter.event;
|
||||
public readonly onProcessShellTypeChanged = this._register(new Emitter<TerminalShellType>()).event;
|
||||
|
||||
public start(): Promise<ITerminalLaunchError | undefined> {
|
||||
this.startedDeferred.complete();
|
||||
this._onProcessReady.fire({ pid: -1, cwd: '', capabilities: [] });
|
||||
this._onProcessReady.fire({ pid: -1, cwd: '' });
|
||||
return Promise.resolve(undefined);
|
||||
}
|
||||
public shutdown(): void {
|
||||
|
||||
Reference in New Issue
Block a user