Skip to content

Commit 678abfe

Browse files
committed
Remove Terminal.onDidWriteData
Replaced by vscode.window.onDidWriteTerminalData Fixes microsoft#78574
1 parent ebe12f5 commit 678abfe

7 files changed

Lines changed: 8 additions & 113 deletions

File tree

extensions/debug-server-ready/src/extension.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,11 @@ class ServerReadyDetector extends vscode.Disposable {
7878
}
7979
this.shellPid = undefined;
8080

81-
terminals.forEach(terminal => {
82-
this.disposables.push(terminal.onDidWriteData(s => {
83-
this.detectPattern(s);
84-
}));
85-
});
81+
this.disposables.push(vscode.window.onDidWriteTerminalData(e => {
82+
if (terminals.indexOf(e.terminal) !== -1) {
83+
this.detectPattern(e.data);
84+
}
85+
}));
8686
}
8787

8888
detectPattern(s: string): void {

extensions/vscode-api-tests/src/singlefolder-tests/terminal.test.ts

Lines changed: 0 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -152,22 +152,6 @@ suite('window namespace tests', () => {
152152
// });
153153

154154
suite('hideFromUser', () => {
155-
// test('should fire onDidWriteData correctly', done => {
156-
// const terminal = window.createTerminal({ name: 'bg', hideFromUser: true });
157-
// let data = '';
158-
// terminal.onDidWriteData(e => {
159-
// data += e;
160-
// if (data.indexOf('foo') !== -1) {
161-
// const reg3 = window.onDidCloseTerminal(() => {
162-
// reg3.dispose();
163-
// done();
164-
// });
165-
// terminal.dispose();
166-
// }
167-
// });
168-
// terminal.sendText('foo');
169-
// });
170-
171155
test('should be available to terminals API', done => {
172156
const terminal = window.createTerminal({ name: 'bg', hideFromUser: true });
173157
window.onDidOpenTerminal(t => {
@@ -247,33 +231,6 @@ suite('window namespace tests', () => {
247231
window.createTerminal({ name: 'c', pty });
248232
});
249233

250-
test('should fire Terminal.onData on write', (done) => {
251-
const reg1 = window.onDidOpenTerminal(async term => {
252-
equal(terminal, term);
253-
reg1.dispose();
254-
const reg2 = terminal.onDidWriteData(data => {
255-
equal(data, 'bar');
256-
reg2.dispose();
257-
const reg3 = window.onDidCloseTerminal(() => {
258-
reg3.dispose();
259-
done();
260-
});
261-
terminal.dispose();
262-
});
263-
await startPromise;
264-
writeEmitter.fire('bar');
265-
});
266-
let startResolve: () => void;
267-
const startPromise: Promise<void> = new Promise<void>(r => startResolve = r);
268-
const writeEmitter = new EventEmitter<string>();
269-
const pty: Pseudoterminal = {
270-
onDidWrite: writeEmitter.event,
271-
open: () => startResolve(),
272-
close: () => {}
273-
};
274-
const terminal = window.createTerminal({ name: 'foo', pty });
275-
});
276-
277234
// The below tests depend on global UI state and each other
278235
// test('should not provide dimensions on start as the terminal has not been shown yet', (done) => {
279236
// const reg1 = window.onDidOpenTerminal(term => {

extensions/vscode-api-tests/src/singlefolder-tests/workspace.tasks.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ suite('workspace-namespace', () => {
2121
const taskName = 'First custom task';
2222
const reg1 = vscode.window.onDidOpenTerminal(term => {
2323
reg1.dispose();
24-
const reg2 = term.onDidWriteData(e => {
24+
const reg2 = vscode.window.onDidWriteTerminalData(e => {
2525
reg2.dispose();
2626
assert.equal(e, 'testing\r\n');
2727
term.dispose();

src/vs/vscode.proposed.d.ts

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -778,15 +778,6 @@ declare module 'vscode' {
778778
* created.
779779
*/
780780
readonly dimensions: TerminalDimensions | undefined;
781-
782-
/**
783-
* Fires when the terminal's pty slave pseudo-device is written to. In other words, this
784-
* provides access to the raw data stream from the process running within the terminal,
785-
* including VT sequences.
786-
*
787-
* @deprecated Use [window.onDidWriteTerminalData](#onDidWriteTerminalData).
788-
*/
789-
readonly onDidWriteData: Event<string>;
790781
}
791782

792783
//#endregion

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

Lines changed: 2 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* Licensed under the MIT License. See License.txt in the project root for license information.
44
*--------------------------------------------------------------------------------------------*/
55

6-
import { IDisposable, DisposableStore, Disposable } from 'vs/base/common/lifecycle';
6+
import { DisposableStore, Disposable } from 'vs/base/common/lifecycle';
77
import { ITerminalService, ITerminalInstance, IShellLaunchConfig, ITerminalProcessExtHostProxy, ISpawnExtHostProcessRequest, ITerminalDimensions, EXT_HOST_CREATION_DELAY, IAvailableShellsRequest, IDefaultShellAndArgsRequest, IStartExtensionTerminalRequest } from 'vs/workbench/contrib/terminal/common/terminal';
88
import { ExtHostContext, ExtHostTerminalServiceShape, MainThreadTerminalServiceShape, MainContext, IExtHostContext, IShellLaunchConfigDto, TerminalLaunchConfig, ITerminalDimensionsDto } from 'vs/workbench/api/common/extHost.protocol';
99
import { extHostNamedCustomer } from 'vs/workbench/api/common/extHostCustomers';
@@ -21,7 +21,6 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape
2121
private readonly _toDispose = new DisposableStore();
2222
private readonly _terminalProcesses = new Map<number, Promise<ITerminalProcessExtHostProxy>>();
2323
private readonly _terminalProcessesReady = new Map<number, (proxy: ITerminalProcessExtHostProxy) => void>();
24-
private readonly _terminalOnDidWriteDataListeners = new Map<number, IDisposable>();
2524
private _dataEventTracker: TerminalDataEventTracker | undefined;
2625

2726
constructor(
@@ -131,30 +130,10 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape
131130
}
132131
}
133132

134-
/** @deprecated */
135-
public $registerOnDataListener(terminalId: number): void {
136-
const terminalInstance = this._terminalService.getInstanceFromId(terminalId);
137-
if (!terminalInstance) {
138-
return;
139-
}
140-
141-
// Listener already registered
142-
if (this._terminalOnDidWriteDataListeners.has(terminalId)) {
143-
return;
144-
}
145-
146-
// Register
147-
const listener = terminalInstance.onData(data => {
148-
this._onTerminalData(terminalId, data);
149-
});
150-
this._terminalOnDidWriteDataListeners.set(terminalId, listener);
151-
terminalInstance.addDisposable(listener);
152-
}
153-
154133
public $startSendingDataEvents(): void {
155134
if (!this._dataEventTracker) {
156135
this._dataEventTracker = this._instantiationService.createInstance(TerminalDataEventTracker, (id, data) => {
157-
this._onTerminalData2(id, data);
136+
this._onTerminalData(id, data);
158137
});
159138
}
160139
}
@@ -170,15 +149,10 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape
170149
this._proxy.$acceptActiveTerminalChanged(terminalId);
171150
}
172151

173-
/** @deprecated */
174152
private _onTerminalData(terminalId: number, data: string): void {
175153
this._proxy.$acceptTerminalProcessData(terminalId, data);
176154
}
177155

178-
private _onTerminalData2(terminalId: number, data: string): void {
179-
this._proxy.$acceptTerminalProcessData2(terminalId, data);
180-
}
181-
182156
private _onTitleChanged(terminalId: number, name: string): void {
183157
this._proxy.$acceptTerminalTitleChange(terminalId, name);
184158
}

src/vs/workbench/api/common/extHost.protocol.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -398,8 +398,6 @@ export interface MainThreadTerminalServiceShape extends IDisposable {
398398
$hide(terminalId: number): void;
399399
$sendText(terminalId: number, text: string, addNewLine: boolean): void;
400400
$show(terminalId: number, preserveFocus: boolean): void;
401-
/** @deprecated */
402-
$registerOnDataListener(terminalId: number): void;
403401
$startSendingDataEvents(): void;
404402
$stopSendingDataEvents(): void;
405403

@@ -1154,9 +1152,7 @@ export interface ExtHostTerminalServiceShape {
11541152
$acceptTerminalOpened(id: number, name: string): void;
11551153
$acceptActiveTerminalChanged(id: number | null): void;
11561154
$acceptTerminalProcessId(id: number, processId: number): void;
1157-
/** @deprecated */
11581155
$acceptTerminalProcessData(id: number, data: string): void;
1159-
$acceptTerminalProcessData2(id: number, data: string): void;
11601156
$acceptTerminalTitleChange(id: number, name: string): void;
11611157
$acceptTerminalDimensions(id: number, cols: number, rows: number): void;
11621158
$acceptTerminalMaximumDimensions(id: number, cols: number, rows: number): void;

src/vs/workbench/api/common/extHostTerminalService.ts

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -97,17 +97,6 @@ export class ExtHostTerminal extends BaseExtHostTerminal implements vscode.Termi
9797
private _pidPromiseComplete: ((value: number | undefined) => any) | undefined;
9898
private _rows: number | undefined;
9999

100-
/** @deprecated */
101-
private readonly _onData = new Emitter<string>();
102-
/** @deprecated */
103-
public get onDidWriteData(): Event<string> {
104-
// Tell the main side to start sending data if it's not already
105-
this._idPromise.then(id => {
106-
this._proxy.$registerOnDataListener(id);
107-
});
108-
return this._onData.event;
109-
}
110-
111100
public isOpen: boolean = false;
112101

113102
constructor(
@@ -201,10 +190,6 @@ export class ExtHostTerminal extends BaseExtHostTerminal implements vscode.Termi
201190
});
202191
}
203192
}
204-
205-
public _fireOnData(data: string): void {
206-
this._onData.fire(data);
207-
}
208193
}
209194

210195
class ApiRequest {
@@ -354,15 +339,7 @@ export abstract class BaseExtHostTerminalService implements IExtHostTerminalServ
354339
}
355340
}
356341

357-
/** @deprecated */
358342
public async $acceptTerminalProcessData(id: number, data: string): Promise<void> {
359-
const terminal = await this._getTerminalByIdEventually(id);
360-
if (terminal) {
361-
terminal._fireOnData(data);
362-
}
363-
}
364-
365-
public async $acceptTerminalProcessData2(id: number, data: string): Promise<void> {
366343
const terminal = await this._getTerminalByIdEventually(id);
367344
if (terminal) {
368345
this._onDidWriteTerminalData.fire({ terminal, data });

0 commit comments

Comments
 (0)