parent
88d9e2b46b
commit
647773d7e6
|
@ -63,8 +63,8 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape
|
|||
this._toDispose.add(_terminalService.onInstanceDimensionsChanged(instance => this._onInstanceDimensionsChanged(instance)));
|
||||
this._toDispose.add(_terminalService.onInstanceMaximumDimensionsChanged(instance => this._onInstanceMaximumDimensionsChanged(instance)));
|
||||
this._toDispose.add(_terminalService.onInstanceRequestStartExtensionTerminal(e => this._onRequestStartExtensionTerminal(e)));
|
||||
this._toDispose.add(_terminalService.onActiveInstanceChanged(instance => this._onActiveTerminalChanged(instance ? instance.id : null)));
|
||||
this._toDispose.add(_terminalService.onInstanceTitleChanged(instance => instance && this._onTitleChanged(instance.id, instance.title)));
|
||||
this._toDispose.add(_terminalService.onActiveInstanceChanged(instance => this._onActiveTerminalChanged(instance ? instance.instanceId : null)));
|
||||
this._toDispose.add(_terminalService.onInstanceTitleChanged(instance => instance && this._onTitleChanged(instance.instanceId, instance.title)));
|
||||
this._toDispose.add(_terminalService.configHelper.onWorkspacePermissionsChanged(isAllowed => this._onWorkspacePermissionsChanged(isAllowed)));
|
||||
this._toDispose.add(_terminalService.onRequestAvailableShells(e => this._onRequestAvailableShells(e)));
|
||||
|
||||
|
@ -80,7 +80,7 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape
|
|||
});
|
||||
const activeInstance = this._terminalService.getActiveInstance();
|
||||
if (activeInstance) {
|
||||
this._proxy.$acceptActiveTerminalChanged(activeInstance.id);
|
||||
this._proxy.$acceptActiveTerminalChanged(activeInstance.instanceId);
|
||||
}
|
||||
if (this._environmentVariableService.collections.size > 0) {
|
||||
const collectionAsArray = [...this._environmentVariableService.collections.entries()];
|
||||
|
@ -132,7 +132,7 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape
|
|||
isFeatureTerminal: launchConfig.isFeatureTerminal
|
||||
};
|
||||
const terminal = this._terminalService.createTerminal(shellLaunchConfig);
|
||||
this._extHostTerminalIds.set(extHostTerminalId, terminal.id);
|
||||
this._extHostTerminalIds.set(extHostTerminalId, terminal.instanceId);
|
||||
}
|
||||
|
||||
public $show(id: TerminalIdentifier, preserveFocus: boolean): void {
|
||||
|
@ -146,7 +146,7 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape
|
|||
public $hide(id: TerminalIdentifier): void {
|
||||
const rendererId = this._getTerminalId(id);
|
||||
const instance = this._terminalService.getActiveInstance();
|
||||
if (instance && instance.id === rendererId) {
|
||||
if (instance && instance.instanceId === rendererId) {
|
||||
this._terminalService.hidePanel();
|
||||
}
|
||||
}
|
||||
|
@ -172,7 +172,7 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape
|
|||
});
|
||||
// Send initial events if they exist
|
||||
this._terminalService.terminalInstances.forEach(t => {
|
||||
t.initialDataEvents?.forEach(d => this._onTerminalData(t.id, d));
|
||||
t.initialDataEvents?.forEach(d => this._onTerminalData(t.instanceId, d));
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@ -215,7 +215,7 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape
|
|||
}
|
||||
|
||||
private _onTerminalDisposed(terminalInstance: ITerminalInstance): void {
|
||||
this._proxy.$acceptTerminalClosed(terminalInstance.id, terminalInstance.exitCode);
|
||||
this._proxy.$acceptTerminalClosed(terminalInstance.instanceId, terminalInstance.exitCode);
|
||||
}
|
||||
|
||||
private _onTerminalOpened(terminalInstance: ITerminalInstance): void {
|
||||
|
@ -228,27 +228,27 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape
|
|||
env: terminalInstance.shellLaunchConfig.env,
|
||||
hideFromUser: terminalInstance.shellLaunchConfig.hideFromUser
|
||||
};
|
||||
this._proxy.$acceptTerminalOpened(terminalInstance.id, extHostTerminalId, terminalInstance.title, shellLaunchConfigDto);
|
||||
this._proxy.$acceptTerminalOpened(terminalInstance.instanceId, extHostTerminalId, terminalInstance.title, shellLaunchConfigDto);
|
||||
}
|
||||
|
||||
private _onTerminalProcessIdReady(terminalInstance: ITerminalInstance): void {
|
||||
if (terminalInstance.processId === undefined) {
|
||||
return;
|
||||
}
|
||||
this._proxy.$acceptTerminalProcessId(terminalInstance.id, terminalInstance.processId);
|
||||
this._proxy.$acceptTerminalProcessId(terminalInstance.instanceId, terminalInstance.processId);
|
||||
}
|
||||
|
||||
private _onInstanceDimensionsChanged(instance: ITerminalInstance): void {
|
||||
this._proxy.$acceptTerminalDimensions(instance.id, instance.cols, instance.rows);
|
||||
this._proxy.$acceptTerminalDimensions(instance.instanceId, instance.cols, instance.rows);
|
||||
}
|
||||
|
||||
private _onInstanceMaximumDimensionsChanged(instance: ITerminalInstance): void {
|
||||
this._proxy.$acceptTerminalMaximumDimensions(instance.id, instance.maxCols, instance.maxRows);
|
||||
this._proxy.$acceptTerminalMaximumDimensions(instance.instanceId, instance.maxCols, instance.maxRows);
|
||||
}
|
||||
|
||||
private _onRequestStartExtensionTerminal(request: IStartExtensionTerminalRequest): void {
|
||||
const proxy = request.proxy;
|
||||
this._terminalProcessProxies.set(proxy.terminalId, proxy);
|
||||
this._terminalProcessProxies.set(proxy.instanceId, proxy);
|
||||
|
||||
// Note that onReisze is not being listened to here as it needs to fire when max dimensions
|
||||
// change, excluding the dimension override
|
||||
|
@ -258,15 +258,15 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape
|
|||
} : undefined;
|
||||
|
||||
this._proxy.$startExtensionTerminal(
|
||||
proxy.terminalId,
|
||||
proxy.instanceId,
|
||||
initialDimensions
|
||||
).then(request.callback);
|
||||
|
||||
proxy.onInput(data => this._proxy.$acceptProcessInput(proxy.terminalId, data));
|
||||
proxy.onShutdown(immediate => this._proxy.$acceptProcessShutdown(proxy.terminalId, immediate));
|
||||
proxy.onRequestCwd(() => this._proxy.$acceptProcessRequestCwd(proxy.terminalId));
|
||||
proxy.onRequestInitialCwd(() => this._proxy.$acceptProcessRequestInitialCwd(proxy.terminalId));
|
||||
proxy.onRequestLatency(() => this._onRequestLatency(proxy.terminalId));
|
||||
proxy.onInput(data => this._proxy.$acceptProcessInput(proxy.instanceId, data));
|
||||
proxy.onShutdown(immediate => this._proxy.$acceptProcessShutdown(proxy.instanceId, immediate));
|
||||
proxy.onRequestCwd(() => this._proxy.$acceptProcessRequestCwd(proxy.instanceId));
|
||||
proxy.onRequestInitialCwd(() => this._proxy.$acceptProcessRequestInitialCwd(proxy.instanceId));
|
||||
proxy.onRequestLatency(() => this._onRequestLatency(proxy.instanceId));
|
||||
}
|
||||
|
||||
public $sendProcessTitle(terminalId: number, title: string): void {
|
||||
|
@ -399,12 +399,12 @@ class TerminalDataEventTracker extends Disposable {
|
|||
|
||||
this._terminalService.terminalInstances.forEach(instance => this._registerInstance(instance));
|
||||
this._register(this._terminalService.onInstanceCreated(instance => this._registerInstance(instance)));
|
||||
this._register(this._terminalService.onInstanceDisposed(instance => this._bufferer.stopBuffering(instance.id)));
|
||||
this._register(this._terminalService.onInstanceDisposed(instance => this._bufferer.stopBuffering(instance.instanceId)));
|
||||
}
|
||||
|
||||
private _registerInstance(instance: ITerminalInstance): void {
|
||||
// Buffer data events to reduce the amount of messages going to the extension host
|
||||
this._register(this._bufferer.startBuffering(instance.id, instance.onData));
|
||||
this._register(this._bufferer.startBuffering(instance.instanceId, instance.onData));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -416,13 +416,13 @@ class ExtensionTerminalLinkProvider implements ITerminalExternalLinkProvider {
|
|||
|
||||
async provideLinks(instance: ITerminalInstance, line: string): Promise<ITerminalLink[] | undefined> {
|
||||
const proxy = this._proxy;
|
||||
const extHostLinks = await proxy.$provideLinks(instance.id, line);
|
||||
const extHostLinks = await proxy.$provideLinks(instance.instanceId, line);
|
||||
return extHostLinks.map(dto => ({
|
||||
id: dto.id,
|
||||
startIndex: dto.startIndex,
|
||||
length: dto.length,
|
||||
label: dto.label,
|
||||
activate: () => proxy.$activateLink(instance.id, dto.id)
|
||||
activate: () => proxy.$activateLink(instance.instanceId, dto.id)
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -296,7 +296,7 @@ export class TerminalTaskSystem implements ITaskSystem {
|
|||
}
|
||||
const activeTerminalInstance = this.terminalService.getActiveInstance();
|
||||
const isPanelShowingTerminal = !!this.viewsService.getActiveViewWithId(TERMINAL_VIEW_ID);
|
||||
return isPanelShowingTerminal && (activeTerminalInstance?.id === terminalData.terminal.id);
|
||||
return isPanelShowingTerminal && (activeTerminalInstance?.instanceId === terminalData.terminal.instanceId);
|
||||
}
|
||||
|
||||
|
||||
|
@ -782,7 +782,7 @@ export class TerminalTaskSystem implements ITaskSystem {
|
|||
}, (_error) => {
|
||||
this.logService.error('Task terminal process never got ready');
|
||||
});
|
||||
this._onDidStateChange.fire(TaskEvent.create(TaskEventKind.Start, task, terminal.id));
|
||||
this._onDidStateChange.fire(TaskEvent.create(TaskEventKind.Start, task, terminal.instanceId));
|
||||
let skipLine: boolean = (!!task.command.presentation && task.command.presentation.echo);
|
||||
const onData = terminal.onLineData((line) => {
|
||||
if (skipLine) {
|
||||
|
@ -812,10 +812,10 @@ export class TerminalTaskSystem implements ITaskSystem {
|
|||
// Only keep a reference to the terminal if it is not being disposed.
|
||||
switch (task.command.presentation!.panel) {
|
||||
case PanelKind.Dedicated:
|
||||
this.sameTaskTerminals[key] = terminal!.id.toString();
|
||||
this.sameTaskTerminals[key] = terminal!.instanceId.toString();
|
||||
break;
|
||||
case PanelKind.Shared:
|
||||
this.idleTaskTerminals.set(key, terminal!.id.toString(), Touch.AsOld);
|
||||
this.idleTaskTerminals.set(key, terminal!.instanceId.toString(), Touch.AsOld);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -868,7 +868,7 @@ export class TerminalTaskSystem implements ITaskSystem {
|
|||
}, (_error) => {
|
||||
// The process never got ready. Need to think how to handle this.
|
||||
});
|
||||
this._onDidStateChange.fire(TaskEvent.create(TaskEventKind.Start, task, terminal.id, resolver.values));
|
||||
this._onDidStateChange.fire(TaskEvent.create(TaskEventKind.Start, task, terminal.instanceId, resolver.values));
|
||||
const mapKey = task.getMapKey();
|
||||
this.busyTasks[mapKey] = task;
|
||||
this._onDidStateChange.fire(TaskEvent.create(TaskEventKind.Active, task));
|
||||
|
@ -892,10 +892,10 @@ export class TerminalTaskSystem implements ITaskSystem {
|
|||
// Only keep a reference to the terminal if it is not being disposed.
|
||||
switch (task.command.presentation!.panel) {
|
||||
case PanelKind.Dedicated:
|
||||
this.sameTaskTerminals[key] = terminal!.id.toString();
|
||||
this.sameTaskTerminals[key] = terminal!.instanceId.toString();
|
||||
break;
|
||||
case PanelKind.Shared:
|
||||
this.idleTaskTerminals.set(key, terminal!.id.toString(), Touch.AsOld);
|
||||
this.idleTaskTerminals.set(key, terminal!.instanceId.toString(), Touch.AsOld);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -1215,7 +1215,7 @@ export class TerminalTaskSystem implements ITaskSystem {
|
|||
if (task.command.presentation && task.command.presentation.clear) {
|
||||
terminalToReuse.terminal.clear();
|
||||
}
|
||||
this.terminals[terminalToReuse.terminal.id.toString()].lastTask = taskKey;
|
||||
this.terminals[terminalToReuse.terminal.instanceId.toString()].lastTask = taskKey;
|
||||
return [terminalToReuse.terminal, commandExecutable, undefined];
|
||||
}
|
||||
|
||||
|
@ -1239,7 +1239,7 @@ export class TerminalTaskSystem implements ITaskSystem {
|
|||
result = this.terminalService.createTerminal(launchConfigs);
|
||||
}
|
||||
|
||||
const terminalKey = result.id.toString();
|
||||
const terminalKey = result.instanceId.toString();
|
||||
result.onDisposed((terminal) => {
|
||||
let terminalData = this.terminals[terminalKey];
|
||||
if (terminalData) {
|
||||
|
|
|
@ -40,7 +40,7 @@ export class RemoteTerminalService extends Disposable implements IRemoteTerminal
|
|||
}
|
||||
}
|
||||
|
||||
public async createRemoteTerminalProcess(terminalId: number, shellLaunchConfig: IShellLaunchConfig, activeWorkspaceRootUri: URI | undefined, cols: number, rows: number, shouldPersist: boolean, configHelper: ITerminalConfigHelper): Promise<ITerminalChildProcess> {
|
||||
public async createRemoteTerminalProcess(instanceId: number, shellLaunchConfig: IShellLaunchConfig, activeWorkspaceRootUri: URI | undefined, cols: number, rows: number, shouldPersist: boolean, configHelper: ITerminalConfigHelper): Promise<ITerminalChildProcess> {
|
||||
if (!this._remoteTerminalChannel) {
|
||||
throw new Error(`Cannot create remote terminal when there is no remote!`);
|
||||
}
|
||||
|
@ -53,7 +53,7 @@ export class RemoteTerminalService extends Disposable implements IRemoteTerminal
|
|||
});
|
||||
}
|
||||
|
||||
return new RemoteTerminalProcess(terminalId, shouldPersist, shellLaunchConfig, activeWorkspaceRootUri, cols, rows, configHelper, isPreconnectionTerminal, this._remoteTerminalChannel, this._remoteAgentService, this._logService, this._commandService);
|
||||
return new RemoteTerminalProcess(instanceId, shouldPersist, shellLaunchConfig, activeWorkspaceRootUri, cols, rows, configHelper, isPreconnectionTerminal, this._remoteTerminalChannel, this._remoteAgentService, this._logService, this._commandService);
|
||||
}
|
||||
|
||||
public async listTerminals(isInitialization = false): Promise<IRemoteTerminalAttachTarget[]> {
|
||||
|
|
|
@ -200,7 +200,7 @@ export interface IRemoteTerminalService {
|
|||
readonly _serviceBrand: undefined;
|
||||
dispose(): void;
|
||||
listTerminals(isInitialization?: boolean): Promise<IRemoteTerminalAttachTarget[]>;
|
||||
createRemoteTerminalProcess(terminalId: number, shellLaunchConfig: IShellLaunchConfig, activeWorkspaceRootUri: URI | undefined, cols: number, rows: number, shouldPersist: boolean, configHelper: ITerminalConfigHelper,): Promise<ITerminalChildProcess>;
|
||||
createRemoteTerminalProcess(instanceId: number, shellLaunchConfig: IShellLaunchConfig, activeWorkspaceRootUri: URI | undefined, cols: number, rows: number, shouldPersist: boolean, configHelper: ITerminalConfigHelper,): Promise<ITerminalChildProcess>;
|
||||
|
||||
setTerminalLayoutInfo(layout: ITerminalsLayoutInfoById): Promise<void>;
|
||||
getTerminalLayoutInfo(): Promise<ITerminalsLayoutInfo | undefined>;
|
||||
|
@ -258,10 +258,10 @@ export interface ITerminalBeforeHandleLinkEvent {
|
|||
|
||||
export interface ITerminalInstance {
|
||||
/**
|
||||
* The ID of the terminal instance, this is an arbitrary number only used to identify the
|
||||
* terminal instance.
|
||||
* The ID of the terminal instance, this is an arbitrary number only used to uniquely identify
|
||||
* terminal instances within a window.
|
||||
*/
|
||||
readonly id: number;
|
||||
readonly instanceId: number;
|
||||
|
||||
readonly cols: number;
|
||||
readonly rows: number;
|
||||
|
|
|
@ -71,12 +71,12 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
|
|||
|
||||
private static _lastKnownCanvasDimensions: ICanvasDimensions | undefined;
|
||||
private static _lastKnownGridDimensions: IGridDimensions | undefined;
|
||||
private static _idCounter = 1;
|
||||
private static _instanceIdCounter = 1;
|
||||
|
||||
private _processManager!: ITerminalProcessManager;
|
||||
private _pressAnyKeyToCloseListener: IDisposable | undefined;
|
||||
|
||||
private _id: number;
|
||||
private _instanceId: number;
|
||||
private _latestXtermWriteData: number = 0;
|
||||
private _latestXtermParseData: number = 0;
|
||||
private _isExiting: boolean;
|
||||
|
@ -120,7 +120,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
|
|||
private hasHadInput: boolean;
|
||||
|
||||
public disableLayout: boolean;
|
||||
public get id(): number { return this._id; }
|
||||
public get instanceId(): number { return this._instanceId; }
|
||||
public get cols(): number {
|
||||
if (this._dimensionsOverride && this._dimensionsOverride.cols) {
|
||||
if (this._dimensionsOverride.forceExactSize) {
|
||||
|
@ -211,7 +211,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
|
|||
this._hadFocusOnExit = false;
|
||||
this._isVisible = false;
|
||||
this._isDisposed = false;
|
||||
this._id = TerminalInstance._idCounter++;
|
||||
this._instanceId = TerminalInstance._instanceIdCounter++;
|
||||
|
||||
this.hasHadInput = false;
|
||||
|
||||
|
@ -224,7 +224,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
|
|||
this._terminalAltBufferActiveContextKey = KEYBINDING_CONTEXT_TERMINAL_ALT_BUFFER_ACTIVE.bindTo(this._contextKeyService);
|
||||
this.disableLayout = false;
|
||||
|
||||
this._logService.trace(`terminalInstance#ctor (id: ${this.id})`, this._shellLaunchConfig);
|
||||
this._logService.trace(`terminalInstance#ctor (instanceId: ${this.instanceId})`, this._shellLaunchConfig);
|
||||
|
||||
this._initDimensions();
|
||||
this._createProcessManager();
|
||||
|
@ -531,7 +531,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
|
|||
throw new Error('xterm elements not set after open');
|
||||
}
|
||||
|
||||
this._setAriaLabel(xterm, this._id, this._title);
|
||||
this._setAriaLabel(xterm, this._instanceId, this._title);
|
||||
|
||||
xterm.textarea.addEventListener('focus', () => this._onFocus.fire(this));
|
||||
xterm.attachCustomKeyEventHandler((event: KeyboardEvent): boolean => {
|
||||
|
@ -772,7 +772,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
|
|||
}
|
||||
|
||||
public dispose(immediate?: boolean): void {
|
||||
this._logService.trace(`terminalInstance#dispose (id: ${this.id})`);
|
||||
this._logService.trace(`terminalInstance#dispose (instanceId: ${this.instanceId})`);
|
||||
|
||||
dispose(this._windowsShellHelper);
|
||||
this._windowsShellHelper = undefined;
|
||||
|
@ -933,7 +933,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
|
|||
}
|
||||
|
||||
protected _createProcessManager(): void {
|
||||
this._processManager = this._instantiationService.createInstance(TerminalProcessManager, this._id, this._configHelper);
|
||||
this._processManager = this._instantiationService.createInstance(TerminalProcessManager, this._instanceId, this._configHelper);
|
||||
this._processManager.onProcessReady(() => this._onProcessIdReady.fire(this));
|
||||
this._processManager.onProcessExit(exitCode => this._onProcessExit(exitCode));
|
||||
this._processManager.onProcessData(ev => {
|
||||
|
@ -1048,7 +1048,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
|
|||
this._isExiting = true;
|
||||
|
||||
await this._flushXtermData();
|
||||
this._logService.debug(`Terminal process exit (id: ${this.id}) with code ${this._exitCode}`);
|
||||
this._logService.debug(`Terminal process exit (instanceId: ${this.instanceId}) with code ${this._exitCode}`);
|
||||
|
||||
let exitCodeMessage: string | undefined;
|
||||
|
||||
|
@ -1091,7 +1091,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
|
|||
break;
|
||||
}
|
||||
|
||||
this._logService.debug(`Terminal process exit (id: ${this.id}) state ${this._processManager.processState}`);
|
||||
this._logService.debug(`Terminal process exit (instanceId: ${this.instanceId}) state ${this._processManager.processState}`);
|
||||
|
||||
// Only trigger wait on exit when the exit was *not* triggered by the
|
||||
// user (via the `workbench.action.terminal.kill` command).
|
||||
|
@ -1531,7 +1531,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
|
|||
const didTitleChange = title !== this._title;
|
||||
this._title = title;
|
||||
if (didTitleChange) {
|
||||
this._setAriaLabel(this._xterm, this._id, this._title);
|
||||
this._setAriaLabel(this._xterm, this._instanceId, this._title);
|
||||
|
||||
if (this._titleReadyComplete) {
|
||||
this._titleReadyComplete(title);
|
||||
|
@ -1574,7 +1574,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance {
|
|||
|
||||
private _onEnvironmentVariableInfoChanged(info: IEnvironmentVariableInfo): void {
|
||||
if (info.requiresAction) {
|
||||
this._xterm?.textarea?.setAttribute('aria-label', nls.localize('terminalStaleTextBoxAriaLabel', "Terminal {0} environment is stale, run the 'Show Environment Information' command for more information", this._id));
|
||||
this._xterm?.textarea?.setAttribute('aria-label', nls.localize('terminalStaleTextBoxAriaLabel', "Terminal {0} environment is stale, run the 'Show Environment Information' command for more information", this._instanceId));
|
||||
}
|
||||
this._refreshEnvironmentVariableInfoWidgetState(info);
|
||||
}
|
||||
|
|
|
@ -48,7 +48,7 @@ export class TerminalProcessExtHostProxy extends Disposable implements ITerminal
|
|||
private _pendingLatencyRequests: ((value: number | PromiseLike<number>) => void)[] = [];
|
||||
|
||||
constructor(
|
||||
public terminalId: number,
|
||||
public instanceId: number,
|
||||
private _shellLaunchConfig: IShellLaunchConfig,
|
||||
private _cols: number,
|
||||
private _rows: number,
|
||||
|
|
|
@ -97,7 +97,7 @@ export class TerminalProcessManager extends Disposable implements ITerminalProce
|
|||
}
|
||||
|
||||
constructor(
|
||||
private readonly _terminalId: number,
|
||||
private readonly _instanceId: number,
|
||||
private readonly _configHelper: ITerminalConfigHelper,
|
||||
@IHistoryService private readonly _historyService: IHistoryService,
|
||||
@IInstantiationService private readonly _instantiationService: IInstantiationService,
|
||||
|
@ -153,7 +153,7 @@ export class TerminalProcessManager extends Disposable implements ITerminalProce
|
|||
// Flow control is not supported for extension terminals
|
||||
shellLaunchConfig.flowControl = false;
|
||||
this._processType = ProcessType.ExtensionTerminal;
|
||||
this._process = this._instantiationService.createInstance(TerminalProcessExtHostProxy, this._terminalId, shellLaunchConfig, cols, rows);
|
||||
this._process = this._instantiationService.createInstance(TerminalProcessExtHostProxy, this._instanceId, shellLaunchConfig, cols, rows);
|
||||
} else {
|
||||
const forceExtHostProcess = (this._configHelper.config as any).extHostProcess;
|
||||
if (shellLaunchConfig.cwd && typeof shellLaunchConfig.cwd === 'object') {
|
||||
|
@ -186,7 +186,7 @@ export class TerminalProcessManager extends Disposable implements ITerminalProce
|
|||
await this._setupEnvVariableInfo(activeWorkspaceRootUri, shellLaunchConfig);
|
||||
|
||||
const shouldPersist = !shellLaunchConfig.isFeatureTerminal && this._configHelper.config.enablePersistentSessions;
|
||||
this._process = await this._remoteTerminalService.createRemoteTerminalProcess(this._terminalId, shellLaunchConfig, activeWorkspaceRootUri, cols, rows, shouldPersist, this._configHelper);
|
||||
this._process = await this._remoteTerminalService.createRemoteTerminalProcess(this._instanceId, shellLaunchConfig, activeWorkspaceRootUri, cols, rows, shouldPersist, this._configHelper);
|
||||
} else {
|
||||
// Flow control is not needed for ptys hosted in the same process (ie. the electron
|
||||
// renderer).
|
||||
|
@ -408,7 +408,7 @@ export class TerminalProcessManager extends Disposable implements ITerminalProce
|
|||
if (diff === undefined) {
|
||||
return;
|
||||
}
|
||||
this._environmentVariableInfo = this._instantiationService.createInstance(EnvironmentVariableInfoStale, diff, this._terminalId);
|
||||
this._environmentVariableInfo = this._instantiationService.createInstance(EnvironmentVariableInfoStale, diff, this._instanceId);
|
||||
this._onEnvironmentVariableInfoChange.fire(this._environmentVariableInfo);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -412,7 +412,7 @@ export class TerminalService implements ITerminalService {
|
|||
public getInstanceFromId(terminalId: number): ITerminalInstance | undefined {
|
||||
let bgIndex = -1;
|
||||
this._backgroundedTerminalInstances.forEach((terminalInstance, i) => {
|
||||
if (terminalInstance.id === terminalId) {
|
||||
if (terminalInstance.instanceId === terminalId) {
|
||||
bgIndex = i;
|
||||
}
|
||||
});
|
||||
|
@ -436,7 +436,7 @@ export class TerminalService implements ITerminalService {
|
|||
if (terminalInstance.shellLaunchConfig.hideFromUser) {
|
||||
this._showBackgroundTerminal(terminalInstance);
|
||||
}
|
||||
this.setActiveInstanceByIndex(this._getIndexFromId(terminalInstance.id));
|
||||
this.setActiveInstanceByIndex(this._getIndexFromId(terminalInstance.instanceId));
|
||||
}
|
||||
|
||||
public setActiveTabByIndex(tabIndex: number): void {
|
||||
|
@ -621,7 +621,7 @@ export class TerminalService implements ITerminalService {
|
|||
private _getIndexFromId(terminalId: number): number {
|
||||
let terminalIndex = -1;
|
||||
this.terminalInstances.forEach((terminalInstance, i) => {
|
||||
if (terminalInstance.id === terminalId) {
|
||||
if (terminalInstance.instanceId === terminalId) {
|
||||
terminalIndex = i;
|
||||
}
|
||||
});
|
||||
|
|
|
@ -265,7 +265,7 @@ export class TerminalTab extends Disposable implements ITerminalTab {
|
|||
|
||||
public addInstance(shellLaunchConfigOrInstance: IShellLaunchConfig | ITerminalInstance): void {
|
||||
let instance: ITerminalInstance;
|
||||
if ('id' in shellLaunchConfigOrInstance) {
|
||||
if ('instanceId' in shellLaunchConfigOrInstance) {
|
||||
instance = shellLaunchConfigOrInstance;
|
||||
} else {
|
||||
instance = this._terminalService.createInstance(undefined, shellLaunchConfigOrInstance);
|
||||
|
@ -350,13 +350,13 @@ export class TerminalTab extends Disposable implements ITerminalTab {
|
|||
}
|
||||
|
||||
private _setActiveInstance(instance: ITerminalInstance): void {
|
||||
this.setActiveInstanceByIndex(this._getIndexFromId(instance.id));
|
||||
this.setActiveInstanceByIndex(this._getIndexFromId(instance.instanceId));
|
||||
}
|
||||
|
||||
private _getIndexFromId(terminalId: number): number {
|
||||
let terminalIndex = -1;
|
||||
this.terminalInstances.forEach((terminalInstance, i) => {
|
||||
if (terminalInstance.id === terminalId) {
|
||||
if (terminalInstance.instanceId === terminalId) {
|
||||
terminalIndex = i;
|
||||
}
|
||||
});
|
||||
|
|
|
@ -291,7 +291,7 @@ export const enum ProcessState {
|
|||
}
|
||||
|
||||
export interface ITerminalProcessExtHostProxy extends IDisposable {
|
||||
readonly terminalId: number;
|
||||
readonly instanceId: number;
|
||||
|
||||
emitData(data: string): void;
|
||||
emitTitle(title: string): void;
|
||||
|
|
Loading…
Reference in a new issue