Expand description
The status line, as DATA — one model, rendered by every face.
§Why this exists
The two faces had drifted, and not cosmetically. The ratatui face drew the
search prompt; the GPU face — escriba’s default renderer — built its
status line from a fixed format!() carrying mode, line, column and
version, and read neither modal.minibuffer() nor search.prompt().
The consequence is worth stating plainly, because it is the whole reason
this module exists: on the default face, typing /foo moved the cursor
with no prompt, no pattern, and no message on screen. Search was fully
implemented and completely invisible, which is indistinguishable from
search not existing.
Two faces each deciding independently what a status line contains is a divergence generator. A shared model makes them disagree only about styling, which is what a face is actually for.
format!() is not used here — the fleet’s ★★ TYPED EMISSION rule. Every
rendering path is push_str/push into a caller-owned buffer.
Structs§
- Status
Model - Everything a status line needs, borrowed from the editor state.
Enums§
- Prompt
Kind - What the command line is currently for.