feat(terminal): port render state, highlights and the formatter
- render.rs ports render.zig: RenderState, the per-frame snapshot the renderer consumes (rows, cells, styles, graphemes, selection, highlights, cursor, colors), updated incrementally with Zig's full redraw triggers and per-page/per-row dirty tracking. Cells are stored struct-of-arrays; use the accessors. - highlight.rs ports highlight.zig (untracked, tracked, flattened). - formatter.rs ports formatter.zig: plain, VT and HTML output for terminal, screen, page list and page, with selection, rectangle, unwrap, trim, palette, codepoint maps, hyperlinks and pin/point maps. Screen's test dump helpers now delegate to it. Cargo.toml also picks up dependencies for the kitty graphics and search modules that are being ported concurrently. Test Plan: - cargo test -p ghostty-terminal --lib (1243 passed; formatter 100/100, render 15/15 Zig tests)
This commit is contained in:
1 parent
f43c0cd00f
commit
6a374b6953
13 files changed
+5510
-356
No files matched your search
@@ -1,12 +1,15 @@
|
||||
//! Safe page-based terminal memory model.
|
||||
#![cfg_attr(test, allow(clippy::unwrap_used))]
|
||||
pub mod cursor;
|
||||
pub mod formatter;
|
||||
pub mod highlight;
|
||||
pub mod hyperlink;
|
||||
pub mod page;
|
||||
pub mod page_list;
|
||||
pub mod pin_iter;
|
||||
pub mod point;
|
||||
pub mod ref_counted_set;
|
||||
pub mod render;
|
||||
pub mod screen;
|
||||
pub mod screen_set;
|
||||
pub mod selection;
|
||||
|
||||
Reference in new issue
Block a user