mirror of
https://github.com/microsoft/vscode.git
synced 2026-05-01 05:51:32 +01:00
Get terminal renderers working with name, onData
This commit is contained in:
@@ -17,6 +17,7 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape
|
||||
private _toDispose: IDisposable[] = [];
|
||||
private _terminalProcesses: { [id: number]: ITerminalProcessExtHostProxy } = {};
|
||||
private _dataListeners: { [id: number]: IDisposable } = {};
|
||||
private _rendererDataListeners: { [id: number]: IDisposable } = {};
|
||||
|
||||
constructor(
|
||||
extHostContext: IExtHostContext,
|
||||
@@ -85,13 +86,28 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape
|
||||
}
|
||||
}
|
||||
|
||||
public $write(terminalId: number, text: string): void {
|
||||
public $terminalRendererWrite(terminalId: number, text: string): void {
|
||||
const terminalInstance = this.terminalService.getInstanceFromId(terminalId);
|
||||
if (terminalInstance && terminalInstance.shellLaunchConfig.isRendererOnly) {
|
||||
terminalInstance.write(text);
|
||||
}
|
||||
}
|
||||
|
||||
public $terminalRendererSetName(terminalId: number, name: string): void {
|
||||
const terminalInstance = this.terminalService.getInstanceFromId(terminalId);
|
||||
if (terminalInstance && terminalInstance.shellLaunchConfig.isRendererOnly) {
|
||||
terminalInstance.setTitle(name, false);
|
||||
}
|
||||
}
|
||||
|
||||
public $terminalRendererRegisterOnDataListener(terminalId: number): void {
|
||||
const terminalInstance = this.terminalService.getInstanceFromId(terminalId);
|
||||
if (terminalInstance) {
|
||||
this._rendererDataListeners[terminalId] = terminalInstance.onRendererData(data => this._onTerminalRendererData(terminalId, data));
|
||||
terminalInstance.onDisposed(() => delete this._dataListeners[terminalId]);
|
||||
}
|
||||
}
|
||||
|
||||
public $sendText(terminalId: number, text: string, addNewLine: boolean): void {
|
||||
const terminalInstance = this.terminalService.getInstanceFromId(terminalId);
|
||||
if (terminalInstance) {
|
||||
@@ -103,7 +119,7 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape
|
||||
const terminalInstance = this.terminalService.getInstanceFromId(terminalId);
|
||||
if (terminalInstance) {
|
||||
this._dataListeners[terminalId] = terminalInstance.onData(data => this._onTerminalData(terminalId, data));
|
||||
terminalInstance.onDisposed(instance => delete this._dataListeners[terminalId]);
|
||||
terminalInstance.onDisposed(() => delete this._dataListeners[terminalId]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -111,6 +127,10 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape
|
||||
this._proxy.$acceptTerminalProcessData(terminalId, data);
|
||||
}
|
||||
|
||||
private _onTerminalRendererData(terminalId: number, data: string): void {
|
||||
this._proxy.$acceptTerminalRendererData(terminalId, data);
|
||||
}
|
||||
|
||||
private _onTerminalDisposed(terminalInstance: ITerminalInstance): void {
|
||||
this._proxy.$acceptTerminalClosed(terminalInstance.id);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user