refactor(cmd): introduce command algebra with Binding::Sequence and unified primitives

Add Binding::Sequence to keymap for composing commands, then use it
and parameterization to eliminate redundant command structs:

- Unify MoveSelection/JumpToEdge/ScrollRows/PageScroll into Move
- Merge ToggleGroupUnderCursor + ToggleColGroupUnderCursor → ToggleGroupAtCursor
- Merge CommitCellEdit + CommitAndAdvanceRight → CommitAndAdvance
- Merge CycleAxisForTile + SetAxisForTile → TileAxisOp
- Merge ViewBackCmd + ViewForwardCmd → ViewNavigate
- Delete SearchAppendChar/SearchPopChar (reuse AppendChar/PopChar with "search")
- Replace SaveAndQuit/OpenRecordRow with keymap sequences
- Extract commit_add_from_buffer helper for CommitCategoryAdd/CommitItemAdd
- Add algebraic law tests (idempotence, involution, associativity)

https://claude.ai/code/session_01Y9X6VKyZAW3xo1nfThDRYU
This commit is contained in:
Claude
2026-04-07 06:48:34 +00:00
committed by Edward Langley
parent b3d80e2986
commit 90c971539c
2 changed files with 450 additions and 397 deletions

File diff suppressed because it is too large Load Diff