mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-23 10:08:49 +01:00
Add support for dimensions APIs
This commit is contained in:
@@ -150,12 +150,37 @@ export class ExtHostTerminalRenderer extends BaseExtHostTerminal implements vsco
|
||||
return this._onData && this._onData.event;
|
||||
}
|
||||
|
||||
private _dimensions: vscode.TerminalDimensions | undefined;
|
||||
public get dimensions(): vscode.TerminalDimensions { return this._dimensions; }
|
||||
public set dimensions(dimensions: vscode.TerminalDimensions) {
|
||||
this._checkDisposed();
|
||||
this._dimensions = dimensions;
|
||||
this._queueApiRequest(this._proxy.$terminalRendererSetDimensions, [dimensions]);
|
||||
// TODO: Send overridden dimensions over to the terminal instance
|
||||
}
|
||||
|
||||
private _maximumDimensions: vscode.TerminalDimensions;
|
||||
public get maximumDimensions(): vscode.TerminalDimensions {
|
||||
if (!this._maximumDimensions) {
|
||||
return undefined;
|
||||
}
|
||||
return {
|
||||
rows: this._maximumDimensions.rows,
|
||||
cols: this._maximumDimensions.cols
|
||||
};
|
||||
}
|
||||
|
||||
private readonly _onDidChangeMaximumDimensions: Emitter<vscode.TerminalDimensions> = new Emitter<vscode.TerminalDimensions>();
|
||||
public get onDidChangeMaximumDimensions(): Event<vscode.TerminalDimensions> {
|
||||
return this._onDidChangeMaximumDimensions && this._onDidChangeMaximumDimensions.event;
|
||||
}
|
||||
|
||||
constructor(
|
||||
proxy: MainThreadTerminalServiceShape,
|
||||
private _name: string
|
||||
) {
|
||||
super(proxy);
|
||||
this._proxy.$createTerminalRenderer(this._name).then((id) => {
|
||||
this._proxy.$createTerminalRenderer(this._name).then(id => {
|
||||
this._runQueuedRequests(id);
|
||||
});
|
||||
}
|
||||
@@ -168,6 +193,11 @@ export class ExtHostTerminalRenderer extends BaseExtHostTerminal implements vsco
|
||||
public _fireOnData(data: string): void {
|
||||
this._onData.fire(data);
|
||||
}
|
||||
|
||||
public _setMaximumDimensions(cols: number, rows: number): void {
|
||||
this._maximumDimensions = { cols, rows };
|
||||
this._onDidChangeMaximumDimensions.fire(this.maximumDimensions);
|
||||
}
|
||||
}
|
||||
|
||||
export class ExtHostTerminalService implements ExtHostTerminalServiceShape {
|
||||
@@ -221,6 +251,15 @@ export class ExtHostTerminalService implements ExtHostTerminalServiceShape {
|
||||
terminal._fireOnData(data);
|
||||
}
|
||||
|
||||
public $acceptTerminalRendererDimensions(id: number, cols: number, rows: number): void {
|
||||
const index = this._getTerminalRendererIndexById(id);
|
||||
if (index === null) {
|
||||
return;
|
||||
}
|
||||
const renderer = this._terminalRenderers[index];
|
||||
renderer._setMaximumDimensions(cols, rows);
|
||||
}
|
||||
|
||||
public $acceptTerminalRendererData(id: number, data: string): void {
|
||||
const index = this._getTerminalRendererIndexById(id);
|
||||
if (index === null) {
|
||||
|
||||
Reference in New Issue
Block a user