UNPKG

@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
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; }