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.
1.7 KiB
v0.3 — Vim editing
Part of the Typoena macro plan. Requirements and targets: qfd.md. Load-bearing decisions: adr.md.
Status: COMPLETE in core 2026-07-11, host-tested (65 editor + 28 keymap
tests) and partially smoke-tested on the panel 2026-07-11. The three
remaining pieces landed together: a single unnamed register with
y/yy/p/P (and x/d/c filling it, so dd…p moves a line),
undo/redo (u/Ctrl-r, snapshot-based, bounded to 100 groups in PSRAM — a
whole Insert session undoes as one group), and . repeat (keystroke-recorded,
so it replays an insert session like ciwfoo<Esc>). The d/c operator grammar
and text objects had already landed ahead of schedule. On device, dd, yy, and
Ctrl-r confirmed good; the one issue found was that a multi-line paste near
the bottom left its later lines below the fold — adjust_scroll only kept the
caret's (first) pasted line visible. Fixed by a reveal() that scrolls the end of
the pasted block into view while the caret stays on its first line (reflash to
re-confirm on panel).
x dd,dw dd d$(✓);yy p P(✓) and.repeat (✓) — register + a keystroke-recorded last-change both landed 2026-07-11- Undo / redo (
u,Ctrl-r) — snapshot history bounded to 100 groups in PSRAM; one Insert session = one undo group - Numeric prefixes (
3dd,5j) - Ahead of schedule:
cchange operator + text objects (ciw,di(,ca", … — inner/around, nesting-aware)
Known limits (deferred): . drops a leading count (3x then . deletes one;
a count inside an operator like d2w is kept); no named registers; . after an
aborted operator (d<Esc>) is a no-op.