Skip to content

Commit 04f9ccf

Browse files
committed
feat(tui,monitor): interactive TUI with normal/inspect modes
Adds a scrolling log-pane widget (tui.h/tui.c) and rebuilds `ice target monitor` on top of it with two user-visible modes plus a CI-friendly dumb passthrough. tui_log widget: - ring-buffered log with bounded scrollback (default 10k lines) - per-line decorator hook + per-byte SGR overlays for level / keyword / search highlighting, composed via a stack-based renderer that nests cleanly across hard wraps - PCRE2 regex search with match counter, current-match marker, and forward / backward navigation that survives ring eviction via global- index anchoring - snapshot ceiling so a frozen view stays stable while the ring keeps growing in the background ice target monitor: - normal mode: pure passthrough, only Ctrl-T intercepted (prefix for x=exit, i=inspect, r=reset, p=bootloader, ?=help, Ctrl-T=literal) - inspect mode: ceiling-frozen view with a vim-style keymap (j/k/Up/Down/PgUp/PgDn/g/G/Home/End scrolling, /, n, N for search, Esc/q to exit) - ESP-IDF E/W/I level lines tinted to match the firmware's own colouring; default keyword rules (error: / warning: / FAILED: / CMake / undefined reference / etc.) applied to non-IDF lines - title bar shows mode badge and per-mode key hints; help is per-mode via tui_info modal - automatic dumb passthrough when stdout/stdin isn't a tty (CI, piped capture, redirection); --no-tui forces the dumb path - DTR/RTS reset and bootloader sequences match esf_port.c's UnixTightReset path Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
1 parent 6dcc5cf commit 04f9ccf

3 files changed

Lines changed: 2299 additions & 40 deletions

File tree

0 commit comments

Comments
 (0)