extend AttributeData with eAttrs, implement SGR 4 subparams, tests

This commit is contained in:
Jörg Breitbart
2020-03-08 18:57:05 +01:00
parent ae135ac181
commit fd5f5e3204
8 changed files with 540 additions and 152 deletions
+14 -1
View File
@@ -68,10 +68,18 @@ export interface ICharset {
export type CharData = [number, string, number, number];
export type IColorRGB = [number, number, number];
export interface IExtendedAttrs {
underlineStyle: number;
underlineColor: number;
clone(): IExtendedAttrs;
isEmpty(): boolean;
}
/** Attribute data */
export interface IAttributeData {
fg: number;
bg: number;
extended: IExtendedAttrs;
clone(): IAttributeData;
@@ -98,6 +106,11 @@ export interface IAttributeData {
// colors
getFgColor(): number;
getBgColor(): number;
// extended attrs
hasExtendedAttrs(): number;
getUnderlineColor(): number;
getUnderlineStyle(): number;
}
/** Cell data */
@@ -122,7 +135,7 @@ export interface IBufferLine {
set(index: number, value: CharData): void;
loadCell(index: number, cell: ICellData): ICellData;
setCell(index: number, cell: ICellData): void;
setCellFromCodePoint(index: number, codePoint: number, width: number, fg: number, bg: number): void;
setCellFromCodePoint(index: number, codePoint: number, width: number, fg: number, bg: number, eAttrs: IExtendedAttrs): void;
addCodepointToCell(index: number, codePoint: number): void;
insertCells(pos: number, n: number, ch: ICellData, eraseAttr?: IAttributeData): void;
deleteCells(pos: number, n: number, fill: ICellData, eraseAttr?: IAttributeData): void;