Move each version's scope checklist and status out of the monolithic macroplan into a dedicated docs/vX.Y-<slug>.md page; macroplan keeps the source block, the rollup status, and a one-line summary + link per version. v0.1 reuses its existing product/technical pages. Also drop the "Optional column ruler at 80" requirement from v0.6.
2.4 KiB
2.4 KiB
v0.2 — Vim navigation
Part of the Typoena macro plan. Requirements and targets: qfd.md. Load-bearing decisions: adr.md.
Status: COMPLETE 2026-07-11. Navigation done in core; the UTF-8-correct
buffer and Ctrl-d/u half-page scroll landed and are hardware-verified,
and the absolute line-number gutter is built, host-tested, and confirmed
on the panel (Spike 13) 2026-07-11 — a single-line edit repaints only the rows
at/below the change and forces no extra full refresh. Shipped early beyond scope:
a read-only View mode and the full d/c operator + text-object grammar
(see v0.3 / v0.4).
- Mode state machine (Normal / Insert / View), mode indicator in the status strip
- Movement:
h j k l,w b e,0 $,gg G,Ctrl-d Ctrl-u.Ctrl-d/ustep display (soft-wrapped) rows, not logical lines — half a page is half the visible window however prose wraps; decoded asHalfPageDown/Upintents in the keymap, caret moves and the viewport follows. i a o O Ato enter InsertEscreturns to Normal- Line numbers in the left gutter: absolute, built + host-tested
2026-07-11, confirmed on the panel (Spike 13) 2026-07-11 — numbered on a
logical line's first display row, blank on wrapped continuation rows; the
gutter width tracks the buffer's line count (2 digits + separator, widening
past 99 lines) and steals its columns from the soft-wrap. Always on in
v0.2; the on/off toggle rides the v0.5
.typoena.tomlprefs. Relative numbering was dropped (2026-07-11): renumbering the whole gutter on everyj/kburns the e-ink ghosting budget for no proportionate gain, whereas absolute renumbers only the rows below an edit — the on-panel check confirmed a single-line edit repaints only rows at/below it with no extra full refresh. - Groundwork — UTF-8-correct buffer: caret motions and edits step by
character, not byte (dropped the ASCII == byte-offset assumption), so every
motion stays correct with accented input. Done 2026-07-11 alongside
extracting the editor into a host-testable crate — char-step
motions/deletes, byte-vs-char split in
layout/caret_rc,word_end/defixed; 15 host tests. Render font is ISO-8859-15 (Latin-9), so accented glyphs display.