Move defaultCell to an exported member

This commit is contained in:
Daniel Imms
2018-08-30 07:57:03 -07:00
parent 9a54cf639b
commit 381e6c1740
2 changed files with 9 additions and 6 deletions
+3 -3
View File
@@ -3,7 +3,7 @@
* @license MIT
*/
import * as chai from 'chai';
import { TerminalLine } from './TerminalLine';
import { TerminalLine, defaultCell } from './TerminalLine';
import { CharData } from './Types';
import { NULL_CELL_CHAR, NULL_CELL_WIDTH, NULL_CELL_CODE, CHAR_DATA_ATTR_INDEX, CHAR_DATA_CHAR_INDEX, CHAR_DATA_WIDTH_INDEX, CHAR_DATA_CODE_INDEX } from './Buffer';
@@ -15,11 +15,11 @@ describe('TerminalLine', function(): void {
chai.expect(line.isWrapped).equals(false);
line = new TerminalLine(10);
chai.expect(line.length).equals(10);
chai.expect(line.pop()).eql(TerminalLine.defaultCell);
chai.expect(line.pop()).eql(defaultCell);
chai.expect(line.isWrapped).equals(false);
line = new TerminalLine(10, null, true);
chai.expect(line.length).equals(10);
chai.expect(line.pop()).eql(TerminalLine.defaultCell);
chai.expect(line.pop()).eql(defaultCell);
chai.expect(line.isWrapped).equals(true);
line = new TerminalLine(10, [123, 'a', 456, 789], true);
chai.expect(line.length).equals(10);
+6 -3
View File
@@ -5,6 +5,8 @@
import { CharData } from './Types';
import { NULL_CELL_CODE, NULL_CELL_WIDTH, NULL_CELL_CHAR } from './Buffer';
export const defaultCell: CharData = [0, NULL_CELL_CHAR, NULL_CELL_WIDTH, NULL_CELL_CODE];
/**
* Class representing a terminal line.
* Currently the class is a thin proxy to `CharData[]`.
@@ -21,11 +23,11 @@ import { NULL_CELL_CODE, NULL_CELL_WIDTH, NULL_CELL_CHAR } from './Buffer';
* - implement typed array alternative once string is removed from CharData
*/
export class TerminalLine {
static defaultCell: CharData = [0, NULL_CELL_CHAR, NULL_CELL_WIDTH, NULL_CELL_CODE];
static blankLine(cols: number, attr: number, isWrapped?: boolean): TerminalLine {
public static blankLine(cols: number, attr: number, isWrapped?: boolean): TerminalLine {
const ch: CharData = [attr, NULL_CELL_CHAR, NULL_CELL_WIDTH, NULL_CELL_CODE];
return new TerminalLine(cols, ch, isWrapped);
}
private _data: CharData[];
public isWrapped = false;
public length: number;
@@ -35,7 +37,7 @@ export class TerminalLine {
this.length = this._data.length;
if (cols) {
if (!ch) {
ch = TerminalLine.defaultCell;
ch = defaultCell;
}
for (let i = 0; i < cols; i++) {
this.push(ch); // Note: the ctor ch is not cloned
@@ -82,6 +84,7 @@ export class TerminalLine {
public release(): void {
// TODO: unref here
}
public toArray(): CharData[] {
return this._data;
}