Ports ZIG/src/inspector (the Dear ImGui terminal inspector) as the ghostty-inspector crate using dear-imgui-rs + dear-imgui-glow (imgui-rs lacks a safe docking API): screen, modes, keyboard events, terminal IO / VT sequence log with filtering, cell inspector with picking, page list, renderer and size/font info, with Ghostty's docking layout. The crate denies unsafe except a single dock.rs module wrapping DockBuilder. GTK: imgui_widget, inspector_widget and inspector_window classes with their blueprints replace the former no-op; ctrl+shift+i toggles the inspector window. Core: activate/deactivate hooks, key event and mouse recording, and VT stream recording in termio while an inspector is active, as in Zig; overlay features reach the renderer through an InspectorHook on the render state. The debug input replay hook gained inspector-screenshot/ click/scroll steps used to verify all tabs in the real app. Deviations: font size scales with the display scale instead of Zig's fixed 16*2; pop-out dock splits apply one frame later; DCS/APC descriptions are approximated. Test Plan: - cargo test -p ghostty-inspector (15 incl. headless full-UI draw) - cargo test -p ghostty-core --test e2e_inspector (4)
19 lines
605 B
Rust
19 lines
605 B
Rust
//! The terminal inspector (ZIG/src/inspector/*).
|
|
//!
|
|
//! The inspector is a development tool to debug the terminal, similar to a
|
|
//! browser's developer tools. The UI is built with Dear ImGui
|
|
//! ([`dear_imgui_rs`]); the apprt owns the ImGui context, feeds input events
|
|
//! and renders the draw data. This crate only draws the widgets and records
|
|
//! the events (keyboard, VT stream) that the widgets display.
|
|
|
|
pub use dear_imgui_rs as imgui;
|
|
|
|
mod dock;
|
|
mod inspector;
|
|
pub mod keys;
|
|
pub mod units;
|
|
pub mod widgets;
|
|
|
|
pub use inspector::{Inspector, Shared, setup};
|
|
pub use widgets::key::Event as KeyEvent;
|