xterm
[VSoRC/.git] / node_modules / xterm / src / common / buffer / Types.d.ts
1 /**
2  * Copyright (c) 2019 The xterm.js authors. All rights reserved.
3  * @license MIT
4  */
5
6 import { IAttributeData, ICircularList, IBufferLine, ICellData, IMarker, ICharset } from 'common/Types';
7 import { IEvent } from 'common/EventEmitter';
8
9 // BufferIndex denotes a position in the buffer: [rowIndex, colIndex]
10 export type BufferIndex = [number, number];
11
12 export interface IBufferStringIteratorResult {
13   range: {first: number, last: number};
14   content: string;
15 }
16
17 export interface IBufferStringIterator {
18   hasNext(): boolean;
19   next(): IBufferStringIteratorResult;
20 }
21
22 export interface IBuffer {
23   readonly lines: ICircularList<IBufferLine>;
24   ydisp: number;
25   ybase: number;
26   y: number;
27   x: number;
28   tabs: any;
29   scrollBottom: number;
30   scrollTop: number;
31   hasScrollback: boolean;
32   savedY: number;
33   savedX: number;
34   savedCharset: ICharset | null;
35   savedCurAttrData: IAttributeData;
36   isCursorInViewport: boolean;
37   markers: IMarker[];
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;
48 }
49
50 export interface IBufferSet {
51   alt: IBuffer;
52   normal: IBuffer;
53   active: IBuffer;
54
55   onBufferActivate: IEvent<{ activeBuffer: IBuffer, inactiveBuffer: IBuffer }>;
56
57   activateNormalBuffer(): void;
58   activateAltBuffer(fillAttr?: IAttributeData): void;
59   resize(newCols: number, newRows: number): void;
60   setupTabStops(i?: number): void;
61 }