Files
typewriter/docs/v0.7-search-and-git.md
Julien Calixte 8d22f81804 feat(editor): / forward search with n/N repeat (v0.7)
Literal case-sensitive substring search sharing the : command line's
editing (cmd_prompt discriminates the prompt; Enter dispatches). Jumps
on Enter only — incremental caret-chasing loses to the e-ink refresh
cost, same call as the snippet no-popup decision. Wraps with a notice,
keeps the caret on a miss, bare / repeats the editor-global last
pattern. n/N live in move_by so counts and Visual extension come free;
they are not operator targets.
2026-07-13 22:15:19 +02:00

2.2 KiB

v0.7 — Search + better git

Part of the Typoena macro plan. Requirements and targets: qfd.md. Load-bearing decisions: adr.md.

Status: / search + n N done in core (2026-07-13, host-tested — 207 editor tests). The :gl pull command landed in the editor (2026-07-11, host-tested) — Effect::Pull + a firmware stub; the on-device fetch + fast-forward is still to build.

  • / forward search, n N — done in core 2026-07-13 (host-tested). Literal, case-sensitive substring (no regex on-device, no smartcase surprises); / reuses the : command line's editing with a / prompt (one command-line mode, as in vim), and the jump happens on Enter only — no incremental caret-chasing, for the same e-ink-refresh reason snippets have no completion popup. Wraps around with a "wrapped" notice; "not found: pat" leaves the caret alone; a bare /+Enter repeats the last pattern, which is editor-global (survives buffer switches, like vim's search register). n/N are motions (counts work, Visual extends over them); deliberately not operator targets (dn out of scope).
  • [~] :gl — pull: fetch + fast-forward only, refuse on divergence and surface it (renamed from the planned :Gpull). Editor command + Effect::Pull done 2026-07-11 (host-tested); the git-thread fetch/fast-forward in git_sync remains (only push is wired today).

Sync performance — inherited from the real-repo-sync kaizen (closed 2026-07-13 at 24.1 s end-to-end; target ≤ ~10 s):

  • Close the publish gap: 19.8 s today — the splice's 5.0 s and the ~7 s of repo-open/negotiation overhead are the next curves (tradeoff analysis).
  • Instrument the residual ~360 ms/loose-write (suspect: FAT directory-op cost in the freshen/refresh path) — one sd_bench + p_mmap-miss logging pass.
  • The images-off-card lever (notes/git-sync-images-and-repo-size.md) composes with the splice — decide whether to take it here.