@opentui/core
Version:
OpenTUI is a TypeScript library on a native Zig core for building terminal user interfaces (TUIs)
148 lines (147 loc) • 5.41 kB
TypeScript
import { Renderable, type RenderableOptions } from "../Renderable.js";
import type { RenderContext } from "../types.js";
import { type LineColorConfig } from "./LineNumberRenderable.js";
import { RGBA } from "../lib/RGBA.js";
import { SyntaxStyle } from "../syntax-style.js";
import type { TreeSitterClient } from "../lib/tree-sitter/index.js";
import type { MouseEvent } from "../renderer.js";
export interface DiffRenderableOptions extends RenderableOptions<DiffRenderable> {
diff?: string;
syncScroll?: boolean;
view?: "unified" | "split";
fg?: string | RGBA;
filetype?: string;
syntaxStyle?: SyntaxStyle;
wrapMode?: "word" | "char" | "none";
conceal?: boolean;
selectionBg?: string | RGBA;
selectionFg?: string | RGBA;
treeSitterClient?: TreeSitterClient;
showLineNumbers?: boolean;
lineNumberFg?: string | RGBA;
lineNumberBg?: string | RGBA;
addedBg?: string | RGBA;
removedBg?: string | RGBA;
contextBg?: string | RGBA;
addedContentBg?: string | RGBA;
removedContentBg?: string | RGBA;
contextContentBg?: string | RGBA;
addedSignColor?: string | RGBA;
removedSignColor?: string | RGBA;
addedLineNumberBg?: string | RGBA;
removedLineNumberBg?: string | RGBA;
}
export declare class DiffRenderable extends Renderable {
private _diff;
private _syncScroll;
private _view;
private _parsedDiff;
private _parseError;
private _hunkStartLines;
private _hunkRowOffsets;
private _fg?;
private _filetype?;
private _syntaxStyle?;
private _wrapMode?;
private _conceal;
private _selectionBg?;
private _selectionFg?;
private _treeSitterClient?;
private _showLineNumbers;
private _lineNumberFg;
private _lineNumberBg;
private _addedBg;
private _removedBg;
private _contextBg;
private _addedContentBg;
private _removedContentBg;
private _contextContentBg;
private _addedSignColor;
private _removedSignColor;
private _addedLineNumberBg;
private _removedLineNumberBg;
private leftSide;
private rightSide;
private leftSideAdded;
private rightSideAdded;
private leftCodeRenderable;
private rightCodeRenderable;
private pendingRebuild;
private _lastWidth;
private errorTextRenderable;
private errorCodeRenderable;
private _waitingForHighlight;
private _lineInfoChangeHandler;
constructor(ctx: RenderContext, options: DiffRenderableOptions);
private parseDiff;
private buildView;
protected onMouseEvent(event: MouseEvent): void;
private isInsideSide;
protected onResize(width: number, height: number): void;
private requestRebuild;
private invalidateHunkRowOffsets;
private rebuildView;
private handleLineInfoChange;
private attachLineInfoListeners;
private detachLineInfoListeners;
destroyRecursively(): void;
private buildErrorView;
private createOrUpdateCodeRenderable;
private createOrUpdateSide;
private buildUnifiedView;
private buildSplitView;
get diff(): string;
set diff(value: string);
get syncScroll(): boolean;
set syncScroll(value: boolean);
get view(): "unified" | "split";
set view(value: "unified" | "split");
get filetype(): string | undefined;
set filetype(value: string | undefined);
get syntaxStyle(): SyntaxStyle | undefined;
set syntaxStyle(value: SyntaxStyle | undefined);
get wrapMode(): "word" | "char" | "none" | undefined;
set wrapMode(value: "word" | "char" | "none" | undefined);
get showLineNumbers(): boolean;
set showLineNumbers(value: boolean);
get addedBg(): RGBA;
set addedBg(value: string | RGBA);
get removedBg(): RGBA;
set removedBg(value: string | RGBA);
get contextBg(): RGBA;
set contextBg(value: string | RGBA);
get addedSignColor(): RGBA;
set addedSignColor(value: string | RGBA);
get removedSignColor(): RGBA;
set removedSignColor(value: string | RGBA);
get addedLineNumberBg(): RGBA;
set addedLineNumberBg(value: string | RGBA);
get removedLineNumberBg(): RGBA;
set removedLineNumberBg(value: string | RGBA);
get lineNumberFg(): RGBA;
set lineNumberFg(value: string | RGBA);
get lineNumberBg(): RGBA;
set lineNumberBg(value: string | RGBA);
get addedContentBg(): RGBA | null;
set addedContentBg(value: string | RGBA | null);
get removedContentBg(): RGBA | null;
set removedContentBg(value: string | RGBA | null);
get contextContentBg(): RGBA | null;
set contextContentBg(value: string | RGBA | null);
get selectionBg(): RGBA | undefined;
set selectionBg(value: string | RGBA | undefined);
get selectionFg(): RGBA | undefined;
set selectionFg(value: string | RGBA | undefined);
get conceal(): boolean;
set conceal(value: boolean);
get fg(): RGBA | undefined;
set fg(value: string | RGBA | undefined);
setLineColor(line: number, color: string | RGBA | LineColorConfig): void;
clearLineColor(line: number): void;
setLineColors(lineColors: Map<number, string | RGBA | LineColorConfig>): void;
clearAllLineColors(): void;
highlightLines(startLine: number, endLine: number, color: string | RGBA | LineColorConfig): void;
clearHighlightLines(startLine: number, endLine: number): void;
getHunkRowOffsets(): number[];
private computeHunkRowOffsets;
}