@opentui/core
Version:
OpenTUI is a TypeScript library on a native Zig core for building terminal user interfaces (TUIs)
43 lines (42 loc) • 2.04 kB
TypeScript
import { RGBA } from "./lib/RGBA.js";
import { type LineInfo, type MeasureResult, type RenderLib, type TextBufferViewHandle } from "./zig.js";
import type { TextBuffer } from "./text-buffer.js";
import type { SelectionBehavior, SelectionOccupancy } from "./types.js";
export declare class TextBufferView {
private lib;
private viewPtr;
private textBuffer;
private _destroyed;
constructor(lib: RenderLib, ptr: TextBufferViewHandle, textBuffer: TextBuffer);
static create(textBuffer: TextBuffer): TextBufferView;
private guard;
get ptr(): TextBufferViewHandle;
setSelection(start: number, end: number, bgColor?: RGBA, fgColor?: RGBA): void;
updateSelection(end: number, bgColor?: RGBA, fgColor?: RGBA): void;
resetSelection(): void;
getSelection(): {
start: number;
end: number;
} | null;
hasSelection(): boolean;
setLocalSelection(anchorX: number, anchorY: number, focusX: number, focusY: number, bgColor?: RGBA, fgColor?: RGBA, behavior?: SelectionBehavior): boolean;
updateLocalSelection(anchorX: number, anchorY: number, focusX: number, focusY: number, bgColor?: RGBA, fgColor?: RGBA, behavior?: SelectionBehavior): boolean;
resetLocalSelection(): void;
setSelectionOccupancy(occupancy: SelectionOccupancy): void;
getSelectionOccupancy(): SelectionOccupancy;
setWrapWidth(width: number | null): void;
setWrapMode(mode: "none" | "char" | "word"): void;
setFirstLineOffset(offset: number): void;
setViewportSize(width: number, height: number): void;
setViewport(x: number, y: number, width: number, height: number): void;
get lineInfo(): LineInfo;
get logicalLineInfo(): LineInfo;
getSelectedText(): string;
getPlainText(): string;
setTabIndicator(indicator: string | number): void;
setTabIndicatorColor(color: RGBA): void;
setTruncate(truncate: boolean): void;
measureForDimensions(width: number, height: number): MeasureResult | null;
getVirtualLineCount(): number;
destroy(): void;
}