Revert "Remove getNullCell"

This reverts commit 0b6a5b7630.
This commit is contained in:
Daniel Imms
2020-02-04 08:42:24 -08:00
parent 9b9cb5c076
commit 9c8deb1470
3 changed files with 11 additions and 17 deletions
@@ -16,7 +16,9 @@ abstract class BaseSerializeHandler {
constructor(private _buffer: IBuffer) { }
serialize(startRow: number, endRow: number): string {
const { cell1, cell2 } = this._getWorkCells();
// we need two of them to flip between old and new cell
const cell1 = this._buffer.getNullCell();
const cell2 = this._buffer.getNullCell();
let oldCell = cell1;
this._beforeSerialize(endRow - startRow);
@@ -42,22 +44,6 @@ abstract class BaseSerializeHandler {
return this._serializeString();
}
private _getWorkCells(): { cell1: IBufferCell, cell2: IBufferCell } {
const line = this._buffer.getLine(0);
if (!line) {
throw new Error('Could not fetch first line for serialization');
}
const cell1 = line.getCell(0);
if (!cell1) {
throw new Error('Could not fetch first cell for serialization');
}
const cell2 = line.getCell(0);
if (!cell2) {
throw new Error('Could not fetch first cell for serialization');
}
return { cell1, cell2 };
}
protected _nextCell(cell: IBufferCell, oldCell: IBufferCell, row: number, col: number): void { }
protected _rowEnd(row: number): void { }
protected _beforeSerialize(rows: number): void { }
+1
View File
@@ -204,6 +204,7 @@ class BufferApiView implements IBufferApi {
}
return new BufferLineApiView(line);
}
public getNullCell(): IBufferCellApi { return new CellData(); }
}
class BufferLineApiView implements IBufferLineApi {
+7
View File
@@ -1117,6 +1117,13 @@ declare module 'xterm' {
* @param y The line index to get.
*/
getLine(y: number): IBufferLine | undefined;
/**
* Creates an empty cell object suitable as a cell reference in
* `line.getCell(x, cell)`. Use this to avoid costly recreation of
* cell objects when dealing with tons of cells.
*/
getNullCell(): IBufferCell;
}
/**