class

Cri::Tui::Renderer

Inherits Reference < Object

Full-terminal layout with an incremental terminal backend. The first frame and resizes clear the alternate screen; normal updates redraw only changed rows, preventing input flicker.

Constructors

new(workspace : Workspace, buffers : BufferStore, width : Int32 | Nil = nil, height : Int32 | Nil = nil, theme : Theme = Theme.new)
Source

Instance methods

buffers
Source
changed_rows(current : Array(String) = frame(true)) : Array(Int32)

Returns changed 1-indexed row numbers. Kept public for regression tests; render uses this same diff before writing to STDOUT.

Source
commit(rendered : Array(String) = frame(true))
Source
cursor_screen_position

Returns a 1-indexed terminal position for the focused panel cursor. A cursor outside the panel viewport is hidden until scrolling reveals it.

Source
cursor_shape
Source
frame(styled : Bool = false) : Array(String)
Source
height
Source
render
Source
resize(width : Int32, height : Int32)
Source
width
Source
workspace
Source
workspace=(workspace : Workspace)
Source