From 198889ab8f78b12c9881a20309a792e419ba1386 Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Sat, 8 Aug 2026 10:44:56 -0300 Subject: Esc alternates between the last two panes; Toggleterm is gone MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Esc ran Toggleterm, which hopped between the newest DOC and the newest TERMINAL. That distinction never earned its keep. It made Esc unpredictable — which of three panes you landed on depended on their kinds, not on where you had been — and it could not alternate between two files at all, which is the case you hit most. Editing two files, Esc did nothing. The replacement already existed. Last (SPC j j) is "the pane you were in before this one, whichever it was": it walks the jump stack for the newest entry naming a different pane and restores its line and column. So Esc, and Shift-Esc in tty, now run Last, and Toggleterm is deleted rather than renamed — a third implementation of "go to the other pane" was the thing to avoid. SPC w t goes with it; the w group is the four directional moves, and the jump group already had SPC j j. Held down, Esc alternates. Two files, a file and its shell, a file and a +Search — all the same, because Last has no notion of kind to get wrong. This depends on the swap in the same series: Last reads the stack backwards, and until hopping stopped appending, the pane you came from could fall off it. windownav.snap needed only its keys and prose changed — its golden did not move at all, which is the useful evidence here: for the one scenario the old builtin handled well, Last produces an identical focus sequence. Coverage for what it did not handle is new: a unit test opens a second FILE by looking its name and asserts Esc alternates between two panes of the SAME kind, which is the case that used to be a no-op. Docs follow: tutor.txt, docs/helix-keys.md, docs/design.typ, and the builtin index goldens, which are now one row shorter. 75/75 snapshots, both unit suites, and the macOS ABI build all pass. --- test/snapshots/builtins.golden | 52 +++++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 26 deletions(-) (limited to 'test/snapshots/builtins.golden') diff --git a/test/snapshots/builtins.golden b/test/snapshots/builtins.golden index 08c701d7..afee3f3f 100644 --- a/test/snapshots/builtins.golden +++ b/test/snapshots/builtins.golden @@ -1,6 +1,6 @@ == snap boot grid=120x60 cursor=7,2 |New Newcol Find Grep Help Tutor Dump NextColor Debug Kill -| /tmp/pardes-snap/builtins/cwd/notes.txt Save New Del +| /tmp/pardes-snap/builtins/cwd/notes.txt Save New Del | 1 line 1 | 2 line 2 | 3 line 3 @@ -61,7 +61,7 @@ | == snap index grid=120x60 cursor=7,32 |New Newcol Find Grep Help Tutor Dump NextColor Debug Kill -| /tmp/pardes-snap/builtins/cwd/notes.txt Save New Del +| /tmp/pardes-snap/builtins/cwd/notes.txt Save New Del | 1 line 1 | 2 line 2 | 3 line 3 @@ -91,7 +91,7 @@ | | | -| /tmp/pardes-snap/builtins/cwd/+Help New Del +| /tmp/pardes-snap/builtins/cwd/+Help New Del | 1 pardes builtins, and how to run each: | 2 SPC and its keys, a chord, a button, the | 3 topbar - or the name, executed anywhere. @@ -122,7 +122,7 @@ | 28 SPC l w Lspwhy == snap index-tail grid=120x60 cursor=7,58 |New Newcol Find Grep Help Tutor Dump NextColor Debug Kill -| /tmp/pardes-snap/builtins/cwd/notes.txt Save New Del +| /tmp/pardes-snap/builtins/cwd/notes.txt Save New Del | 1 line 1 | 2 line 2 | 3 line 3 @@ -152,7 +152,8 @@ | | | -| /tmp/pardes-snap/builtins/cwd/+Help New Del +| /tmp/pardes-snap/builtins/cwd/+Help New Del +| 24 SPC l i Lspinfo | 25 SPC l k Hover | 26 SPC l r Rename | 27 SPC l s Symbols @@ -175,15 +176,14 @@ | 44 SPC w j Down C-w j, C-w down | 45 SPC w k Up C-w k, C-w up | 46 SPC w l Right C-w l, C-w right -| 47 SPC w t Toggleterm -| 48 Look enter, right-click -| 49 Exec tab, middle-click -| 50 Theme -| 51 Shell -| 52 +| 47 Look enter, right-click +| 48 Exec tab, middle-click +| 49 Theme +| 50 Shell +| 51 == snap not-a-picker grid=120x60 cursor=7,58 |New Newcol Find Grep Help Tutor Dump NextColor Debug Kill -| /tmp/pardes-snap/builtins/cwd/notes.txt Save New Del +| /tmp/pardes-snap/builtins/cwd/notes.txt Save New Del | 1 line 1 | 2 line 2 | 3 line 3 @@ -213,7 +213,8 @@ | | | -| /tmp/pardes-snap/builtins/cwd/+Help New Del +| /tmp/pardes-snap/builtins/cwd/+Help New Del +| 24 SPC l i Lspinfo | 25 SPC l k Hover | 26 SPC l r Rename | 27 SPC l s Symbols @@ -236,15 +237,14 @@ | 44 SPC w j Down C-w j, C-w down | 45 SPC w k Up C-w k, C-w up | 46 SPC w l Right C-w l, C-w right -| 47 SPC w t Toggleterm -| 48 Look enter, right-click -| 49 Exec tab, middle-click -| 50 Theme -| 51 Shell -| 52 +| 47 Look enter, right-click +| 48 Exec tab, middle-click +| 49 Theme +| 50 Shell +| 51 == snap window-group grid=120x60 cursor=7,32 |New Newcol Find Grep Help Tutor Dump NextColor Debug Kill -| /tmp/pardes-snap/builtins/cwd/notes.txt Save New Del +| /tmp/pardes-snap/builtins/cwd/notes.txt Save New Del | 1 line 1 | 2 line 2 | 3 line 3 @@ -274,15 +274,15 @@ | | | -| /tmp/pardes-snap/builtins/cwd/+Help New Del +| /tmp/pardes-snap/builtins/cwd/+Help New Del | 1 pardes builtins under SPC w | 2 | 3 SPC w h Left C-w h, C-w left | 4 SPC w j Down C-w j, C-w down | 5 SPC w k Up C-w k, C-w up | 6 SPC w l Right C-w l, C-w right -| 7 SPC w t Toggleterm -| 8 +| 7 +| | | | @@ -305,7 +305,7 @@ | == snap tutor-from-index grid=120x60 cursor=7,17 |New Newcol Find Grep Help Tutor Dump NextColor Debug Kill -| /tmp/pardes-snap/builtins/cwd/notes.txt Save New Del +| /tmp/pardes-snap/builtins/cwd/notes.txt Save New Del | 1 line 1 | 2 line 2 | 3 line 3 @@ -320,7 +320,7 @@ | | | -| /Tutor Save New Del +| /Tutor Save New Del | 1 | 2 PARDES TUTOR | 3 tmux + vi + acme, from scratch. @@ -335,7 +335,7 @@ | 12 ================================================================= | 13 | 14 Pardes is tmux + vi + acme, made from scratch. The foundation is -| /tmp/pardes-snap/builtins/cwd/+Help New Del +| /tmp/pardes-snap/builtins/cwd/+Help New Del | 1 pardes builtins, and how to run each: | 2 SPC and its keys, a chord, a button, the | 3 topbar - or the name, executed anywhere. -- cgit v1.3