opencoder
Version:
53 lines (52 loc) • 1.6 kB
TypeScript
type WrappedText = string[];
type Position = {
line: number;
column: number;
};
export declare class Cursor {
readonly measuredText: MeasuredText;
readonly selection: number;
readonly offset: number;
constructor(measuredText: MeasuredText, offset?: number, selection?: number);
static fromText(text: string, columns: number, offset?: number, selection?: number): Cursor;
render(cursorChar: string, mask: string, invert: (text: string) => string): string;
left(): Cursor;
right(): Cursor;
up(): Cursor;
down(): Cursor;
startOfLine(): Cursor;
endOfLine(): Cursor;
nextWord(): Cursor;
prevWord(): Cursor;
private modifyText;
insert(insertString: string): Cursor;
del(): Cursor;
backspace(): Cursor;
deleteToLineStart(): Cursor;
deleteToLineEnd(): Cursor;
deleteWordBefore(): Cursor;
deleteWordAfter(): Cursor;
private isOverWordChar;
equals(other: Cursor): boolean;
private isAtStart;
private isAtEnd;
get text(): string;
private get columns();
private getPosition;
private getOffset;
}
export declare class MeasuredText {
readonly text: string;
readonly columns: number;
private wrappedLines;
constructor(text: string, columns: number);
private measureWrappedText;
getWrappedText(): WrappedText;
private getLine;
getOffsetFromPosition(position: Position): number;
getLineLength(line: number): number;
getPositionFromOffset(offset: number): Position;
get lineCount(): number;
equals(other: MeasuredText): boolean;
}
export {};