Skip to main content

Module status

Module status 

Source
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§

StatusModel
Everything a status line needs, borrowed from the editor state.

Enums§

PromptKind
What the command line is currently for.