Skip to content

Commit 7d3413a

Browse files
committed
Revert "emit Exit via propertyChanged"
This reverts commit 9bca7ce.
1 parent e7b40c1 commit 7d3413a

File tree

3 files changed

+21
-11
lines changed

3 files changed

+21
-11
lines changed

src/vs/workbench/api/browser/mainThreadTerminalService.ts

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import { URI } from 'vs/base/common/uri';
1010
import { StopWatch } from 'vs/base/common/stopwatch';
1111
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
1212
import { ILogService } from 'vs/platform/log/common/log';
13-
import { IProcessProperty, IShellLaunchConfig, IShellLaunchConfigDto, ProcessPropertyType, TerminalLocation, TitleEventSource } from 'vs/platform/terminal/common/terminal';
13+
import { IProcessProperty, IShellLaunchConfig, IShellLaunchConfigDto, TerminalLocation, TitleEventSource } from 'vs/platform/terminal/common/terminal';
1414
import { TerminalDataBufferer } from 'vs/platform/terminal/common/terminalDataBuffering';
1515
import { ITerminalEditorService, ITerminalExternalLinkProvider, ITerminalGroupService, ITerminalInstance, ITerminalInstanceService, ITerminalLink, ITerminalService } from 'vs/workbench/contrib/terminal/browser/terminal';
1616
import { TerminalProcessExtHostProxy } from 'vs/workbench/contrib/terminal/browser/terminalProcessExtHostProxy';
@@ -303,6 +303,18 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape
303303
proxy.onRequestLatency(() => this._onRequestLatency(proxy.instanceId));
304304
}
305305

306+
public $sendProcessTitle(terminalId: number, title: string): void {
307+
// Since title events can only come from vscode.Pseudoterminals right now, these are routed
308+
// directly to the instance as API source events such that they will replace the initial
309+
// `name` property provided for the Pseudoterminal. If we support showing both Api and
310+
// Process titles at the same time we may want to pass this through as a Process source
311+
// event.
312+
const instance = this._terminalService.getInstanceFromId(terminalId);
313+
if (instance) {
314+
instance.refreshTabLabels(title, TitleEventSource.Api);
315+
}
316+
}
317+
306318
public $sendProcessData(terminalId: number, data: string): void {
307319
this._terminalProcessProxies.get(terminalId)?.emitData(data);
308320
}
@@ -312,15 +324,13 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape
312324
}
313325

314326
public $sendProcessProperty(terminalId: number, property: IProcessProperty<any>): void {
315-
if (property.type === ProcessPropertyType.Title) {
316-
const instance = this._terminalService.getInstanceFromId(terminalId);
317-
if (instance) {
318-
instance.refreshTabLabels(property.value, TitleEventSource.Api);
319-
}
320-
}
321327
this._terminalProcessProxies.get(terminalId)?.emitProcessProperty(property);
322328
}
323329

330+
public $sendProcessExit(terminalId: number, exitCode: number | undefined): void {
331+
this._terminalProcessProxies.get(terminalId)?.emitExit(exitCode);
332+
}
333+
324334
private async _onRequestLatency(terminalId: number): Promise<void> {
325335
const COUNT = 2;
326336
let sum = 0;

src/vs/workbench/contrib/terminal/browser/terminalProcessExtHostProxy.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ export class TerminalProcessExtHostProxy extends Disposable implements ITerminal
1616
get capabilities(): ProcessCapability[] { return this._capabilities; }
1717
private readonly _onProcessData = this._register(new Emitter<string>());
1818
readonly onProcessData: Event<string> = this._onProcessData.event;
19+
private readonly _onProcessExit = this._register(new Emitter<number | undefined>());
20+
readonly onProcessExit: Event<number | undefined> = this._onProcessExit.event;
1921
private readonly _onProcessReady = this._register(new Emitter<IProcessReadyEvent>());
2022
get onProcessReady(): Event<IProcessReadyEvent> { return this._onProcessReady.event; }
2123

@@ -83,14 +85,11 @@ export class TerminalProcessExtHostProxy extends Disposable implements ITerminal
8385
case ProcessPropertyType.ResolvedShellLaunchConfig:
8486
this.emitResolvedShellLaunchConfig(value);
8587
break;
86-
case ProcessPropertyType.Exit:
87-
this.emitExit(value);
88-
break;
8988
}
9089
}
9190

9291
emitExit(exitCode: number | undefined): void {
93-
this._onDidChangeProperty.fire({ type: ProcessPropertyType.Exit, value: exitCode });
92+
this._onProcessExit.fire(exitCode);
9493
this.dispose();
9594
}
9695

src/vs/workbench/contrib/terminal/common/terminal.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,7 @@ export interface ITerminalProcessExtHostProxy extends IDisposable {
341341
emitData(data: string): void;
342342
emitProcessProperty(property: IProcessProperty<any>): void;
343343
emitReady(pid: number, cwd: string): void;
344+
emitExit(exitCode: number | undefined): void;
344345
emitLatency(latency: number): void;
345346

346347
onInput: Event<string>;

0 commit comments

Comments
 (0)