Glue between the autocomplete controller (which works in byte offsets
against a single joined buffer string) and ratatui_textarea::TextArea
(which works in (row, char_col) per-line coordinates).
Incremental-parse machinery: line-construct classification cache,
damage-diff against the previous buffer snapshot, safe-boundary
widening, and fence-range derivation. Pure functions only — no
pulldown_cmark calls (those live in markdown.rs).
Owned RGBA image data lifted from the system clipboard. Returned by
TextEditorComponent::take_clipboard_image so the screen layer can
encode + persist without holding the editor’s clipboard borrow.
Snapshot of the textarea backend used to classify a key event as a
text edit (text differs) vs. a pure cursor move (text same, cursor
moved) vs. a no-op (both same).