2 * Copyright (c) 2019 The xterm.js authors. All rights reserved.
6 import { IAttributeData, ICircularList, IBufferLine, ICellData, IMarker, ICharset } from 'common/Types';
7 import { IEvent } from 'common/EventEmitter';
9 // BufferIndex denotes a position in the buffer: [rowIndex, colIndex]
10 export type BufferIndex = [number, number];
12 export interface IBufferStringIteratorResult {
13 range: {first: number, last: number};
17 export interface IBufferStringIterator {
19 next(): IBufferStringIteratorResult;
22 export interface IBuffer {
23 readonly lines: ICircularList<IBufferLine>;
31 hasScrollback: boolean;
34 savedCharset: ICharset | null;
35 savedCurAttrData: IAttributeData;
36 isCursorInViewport: boolean;
38 translateBufferLineToString(lineIndex: number, trimRight: boolean, startCol?: number, endCol?: number): string;
39 getWrappedRangeForLine(y: number): { first: number, last: number };
40 nextStop(x?: number): number;
41 prevStop(x?: number): number;
42 getBlankLine(attr: IAttributeData, isWrapped?: boolean): IBufferLine;
43 stringIndexToBufferIndex(lineIndex: number, stringIndex: number, trimRight?: boolean): number[];
44 iterator(trimRight: boolean, startIndex?: number, endIndex?: number, startOverscan?: number, endOverscan?: number): IBufferStringIterator;
45 getNullCell(attr?: IAttributeData): ICellData;
46 getWhitespaceCell(attr?: IAttributeData): ICellData;
47 addMarker(y: number): IMarker;
50 export interface IBufferSet {
55 onBufferActivate: IEvent<{ activeBuffer: IBuffer, inactiveBuffer: IBuffer }>;
57 activateNormalBuffer(): void;
58 activateAltBuffer(fillAttr?: IAttributeData): void;
59 resize(newCols: number, newRows: number): void;
60 setupTabStops(i?: number): void;