From be404e0d4f91548af6ed600b2fd2027ad8a041c7 Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Fri, 31 Jul 2026 01:47:40 -0300 Subject: focus history is a stack of locations, and the Jumplist is that same stack MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit One container, not two: focus_hist (a stack of pane ids rebuilt every sync) is now jumps[] + a current pointer, and the +Jumps buffer is a RENDERING of that array — nothing copies it, nothing shadows it. prevFocus, Toggleterm, Look's directory order, Back/Forward, Last and Jumplist all walk the one list. A pane id is reused, so a location that only remembered an id would retarget after a respawn: panes now carry a monotonic serial and an entry whose slot holds a different serial is dead. trackJump compacts those out and fixes the pointer in the same pass. The push rule lives in ONE place and says: a location is worth remembering when you cannot see it any more — a different pane, or more than a bodyful of rows away in the same one. So hjkl never grows the list and 100G, a search hit and a goto-definition do. Ctrl-o/Ctrl-i walk it, SPC j j toggles the last two, SPC j l lists them. Ctrl-i IS Tab on a legacy host, where the binding simply never fires and Tab-executes is untouched; kitty reports them apart. SPC j o/i work anywhere. Two goldens moved, both the SPC ? Help listing gaining four rows. --- test/snapshots/jumps.golden | 527 ++++++++++++++++++++++++++++++++++++++++++ test/snapshots/jumps.snap | 85 +++++++ test/snapshots/leader.golden | 28 +-- test/snapshots/ttyhelp.golden | 60 ++--- 4 files changed, 656 insertions(+), 44 deletions(-) create mode 100644 test/snapshots/jumps.golden create mode 100644 test/snapshots/jumps.snap (limited to 'test') diff --git a/test/snapshots/jumps.golden b/test/snapshots/jumps.golden new file mode 100644 index 00000000..c49b354e --- /dev/null +++ b/test/snapshots/jumps.golden @@ -0,0 +1,527 @@ +== snap start grid=150x30 cursor=7,2 +|Kill Newcol Tutor Debug NextColor Dump Find Grep Help +| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del +| 1 line 1 +| 2 line 2 big.txt +| 3 line 3 +| 4 line 4 +| 5 line 5 +| 6 line 6 +| 7 line 7 +| 8 line 8 +| 9 line 9 +| 10 line 10 +| 11 line 11 +| 12 line 12 +| 13 line 13 +| 14 line 14 +| 15 line 15 +| 16 line 16 +| 17 line 17 +| 18 line 18 +| 19 line 19 +| 20 line 20 +| 21 line 21 +| 22 line 22 +| 23 line 23 +| 24 line 24 +| 25 line 25 +| 26 line 26 +| 27 line 27 +| 28 line 28 +== snap to-shell grid=150x30 cursor=79,4 +|Kill Newcol Tutor Debug NextColor Dump Find Grep Help +| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del +| 1 line 1 +| 2 line 2 big.txt +| 3 line 3 +| 4 line 4 +| 5 line 5 +| 6 line 6 +| 7 line 7 +| 8 line 8 +| 9 line 9 +| 10 line 10 +| 11 line 11 +| 12 line 12 +| 13 line 13 +| 14 line 14 +| 15 line 15 +| 16 line 16 +| 17 line 17 +| 18 line 18 +| 19 line 19 +| 20 line 20 +| 21 line 21 +| 22 line 22 +| 23 line 23 +| 24 line 24 +| 25 line 25 +| 26 line 26 +| 27 line 27 +| 28 line 28 +== snap to-file grid=150x30 cursor=7,2 +|Kill Newcol Tutor Debug NextColor Dump Find Grep Help +| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del +| 1 line 1 +| 2 line 2 big.txt +| 3 line 3 +| 4 line 4 +| 5 line 5 +| 6 line 6 +| 7 line 7 +| 8 line 8 +| 9 line 9 +| 10 line 10 +| 11 line 11 +| 12 line 12 +| 13 line 13 +| 14 line 14 +| 15 line 15 +| 16 line 16 +| 17 line 17 +| 18 line 18 +| 19 line 19 +| 20 line 20 +| 21 line 21 +| 22 line 22 +| 23 line 23 +| 24 line 24 +| 25 line 25 +| 26 line 26 +| 27 line 27 +| 28 line 28 +== snap goto-100 grid=150x30 cursor=7,26 +|Kill Newcol Tutor Debug NextColor Dump Find Grep Help +| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del +| 76 line 76 +| 77 line 77 big.txt +| 78 line 78 +| 79 line 79 +| 80 line 80 +| 81 line 81 +| 82 line 82 +| 83 line 83 +| 84 line 84 +| 85 line 85 +| 86 line 86 +| 87 line 87 +| 88 line 88 +| 89 line 89 +| 90 line 90 +| 91 line 91 +| 92 line 92 +| 93 line 93 +| 94 line 94 +| 95 line 95 +| 96 line 96 +| 97 line 97 +| 98 line 98 +| 99 line 99 +| 100 line 100 +| 101 line 101 +| 102 line 102 +| 103 line 103 +== snap back-in-file grid=150x30 cursor=7,2 +|Kill Newcol Tutor Debug NextColor Dump Find Grep Help +| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del +| 1 line 1 +| 2 line 2 big.txt +| 3 line 3 +| 4 line 4 +| 5 line 5 +| 6 line 6 +| 7 line 7 +| 8 line 8 +| 9 line 9 +| 10 line 10 +| 11 line 11 +| 12 line 12 +| 13 line 13 +| 14 line 14 +| 15 line 15 +| 16 line 16 +| 17 line 17 +| 18 line 18 +| 19 line 19 +| 20 line 20 +| 21 line 21 +| 22 line 22 +| 23 line 23 +| 24 line 24 +| 25 line 25 +| 26 line 26 +| 27 line 27 +| 28 line 28 +== snap back-to-shell grid=150x30 cursor=79,4 +|Kill Newcol Tutor Debug NextColor Dump Find Grep Help +| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del +| 1 line 1 +| 2 line 2 big.txt +| 3 line 3 +| 4 line 4 +| 5 line 5 +| 6 line 6 +| 7 line 7 +| 8 line 8 +| 9 line 9 +| 10 line 10 +| 11 line 11 +| 12 line 12 +| 13 line 13 +| 14 line 14 +| 15 line 15 +| 16 line 16 +| 17 line 17 +| 18 line 18 +| 19 line 19 +| 20 line 20 +| 21 line 21 +| 22 line 22 +| 23 line 23 +| 24 line 24 +| 25 line 25 +| 26 line 26 +| 27 line 27 +| 28 line 28 +== snap forward-file grid=150x30 cursor=7,2 +|Kill Newcol Tutor Debug NextColor Dump Find Grep Help +| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del +| 1 line 1 +| 2 line 2 big.txt +| 3 line 3 +| 4 line 4 +| 5 line 5 +| 6 line 6 +| 7 line 7 +| 8 line 8 +| 9 line 9 +| 10 line 10 +| 11 line 11 +| 12 line 12 +| 13 line 13 +| 14 line 14 +| 15 line 15 +| 16 line 16 +| 17 line 17 +| 18 line 18 +| 19 line 19 +| 20 line 20 +| 21 line 21 +| 22 line 22 +| 23 line 23 +| 24 line 24 +| 25 line 25 +| 26 line 26 +| 27 line 27 +| 28 line 28 +== snap forward-100 grid=150x30 cursor=7,16 +|Kill Newcol Tutor Debug NextColor Dump Find Grep Help +| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del +| 86 line 86 +| 87 line 87 big.txt +| 88 line 88 +| 89 line 89 +| 90 line 90 +| 91 line 91 +| 92 line 92 +| 93 line 93 +| 94 line 94 +| 95 line 95 +| 96 line 96 +| 97 line 97 +| 98 line 98 +| 99 line 99 +| 100 line 100 +| 101 line 101 +| 102 line 102 +| 103 line 103 +| 104 line 104 +| 105 line 105 +| 106 line 106 +| 107 line 107 +| 108 line 108 +| 109 line 109 +| 110 line 110 +| 111 line 111 +| 112 line 112 +| 113 line 113 +== snap last grid=150x30 cursor=79,4 +|Kill Newcol Tutor Debug NextColor Dump Find Grep Help +| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del +| 86 line 86 +| 87 line 87 big.txt +| 88 line 88 +| 89 line 89 +| 90 line 90 +| 91 line 91 +| 92 line 92 +| 93 line 93 +| 94 line 94 +| 95 line 95 +| 96 line 96 +| 97 line 97 +| 98 line 98 +| 99 line 99 +| 100 line 100 +| 101 line 101 +| 102 line 102 +| 103 line 103 +| 104 line 104 +| 105 line 105 +| 106 line 106 +| 107 line 107 +| 108 line 108 +| 109 line 109 +| 110 line 110 +| 111 line 111 +| 112 line 112 +| 113 line 113 +== snap last-back grid=150x30 cursor=7,16 +|Kill Newcol Tutor Debug NextColor Dump Find Grep Help +| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del +| 86 line 86 +| 87 line 87 big.txt +| 88 line 88 +| 89 line 89 +| 90 line 90 +| 91 line 91 +| 92 line 92 +| 93 line 93 +| 94 line 94 +| 95 line 95 +| 96 line 96 +| 97 line 97 +| 98 line 98 +| 99 line 99 +| 100 line 100 +| 101 line 101 +| 102 line 102 +| 103 line 103 +| 104 line 104 +| 105 line 105 +| 106 line 106 +| 107 line 107 +| 108 line 108 +| 109 line 109 +| 110 line 110 +| 111 line 111 +| 112 line 112 +| 113 line 113 +== snap jumplist grid=150x30 cursor=7,16 +|Kill Newcol Tutor Debug NextColor Dump Find Grep Help +| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del +| 86 line 86 +| 87 line 87 big.txt +| 88 line 88 +| 89 line 89 +| 90 line 90 +| 91 line 91 +| 92 line 92 +| 93 line 93 +| 94 line 94 +| 95 line 95 +| 96 line 96 +| 97 line 97 +| 98 line 98 +| 99 line 99 +| 100 line 100 +| 101 line 101 +| 102 line 102 +| 103 line 103 +| 104 line 104 +| 105 line 105 +| 106 line 106 +| NOR /tmp/pardes-snap/jumps/cwd/+Jumps Del +| 1 /tmp/pardes-snap/jumps/cwd/big.txt:1:1 line 1 +| 2 @p1:3:3 /tmp/pardes-snap/jumps/cwd +| 3 /tmp/pardes-snap/jumps/cwd/big.txt:1:1 line 1 +| 4 /tmp/pardes-snap/jumps/cwd/big.txt:100:1 line 100 +| 5 @p1:3:3 /tmp/pardes-snap/jumps/cwd +| 6 /tmp/pardes-snap/jumps/cwd/big.txt:100:1 line 100 +== snap step1 grid=150x30 cursor=7,2 +|Kill Newcol Tutor Debug NextColor Dump Find Grep Help +| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del +| 1 line 1 +| 2 line 2 big.txt +| 3 line 3 +| 4 line 4 +| 5 line 5 +| 6 line 6 +| 7 line 7 +| 8 line 8 +| 9 line 9 +| 10 line 10 +| 11 line 11 +| 12 line 12 +| 13 line 13 +| 14 line 14 +| 15 line 15 +| 16 line 16 +| 17 line 17 +| 18 line 18 +| 19 line 19 +| 20 line 20 +| 21 line 21 +| NOR /tmp/pardes-snap/jumps/cwd/+Jumps Del +| 1 /tmp/pardes-snap/jumps/cwd/big.txt:1:1 line 1 +| 2 @p1:3:3 /tmp/pardes-snap/jumps/cwd +| 3 /tmp/pardes-snap/jumps/cwd/big.txt:1:1 line 1 +| 4 /tmp/pardes-snap/jumps/cwd/big.txt:100:1 line 100 +| 5 @p1:3:3 /tmp/pardes-snap/jumps/cwd +| 6 /tmp/pardes-snap/jumps/cwd/big.txt:100:1 line 100 +== style step1 +|0: 0-52 #949494,#121212, 53-149 d,#121212, +|1: 0-1 d,#626262, 2-48 #949494,#121212, 49-74 d,#121212, 75-76 d,#262626, 77-110 #949494,#121212, 111-149 d,#121212, +|2: 0-1 d,#444444, 2-6 #949494,#121212, 7-12 #bdbdbd,#080808, 13-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808, +|3: 0-1 d,#444444, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808, +|4: 0-1 d,#121212, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808, +|5: 0-1 d,#121212, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808, +|6: 0-1 d,#121212, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808, +|7: 0-1 d,#121212, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808, +|8: 0-1 d,#121212, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808, +|9: 0-1 d,#121212, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808, +|10: 0-1 d,#121212, 2-6 #626262,#080808, 7-12 #bdbdbd,#080808, 13-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808, +|11: 0-1 d,#121212, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808, +|12: 0-1 d,#121212, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808, +|13: 0-1 d,#121212, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808, +|14: 0-1 d,#121212, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808, +|15: 0-1 d,#121212, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808, +|16: 0-1 d,#121212, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808, +|17: 0-1 d,#121212, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808, +|18: 0-1 d,#121212, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808, +|19: 0-1 d,#121212, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808, +|20: 0-1 d,#121212, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808, +|21: 0-1 d,#121212, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808, +|22: 0-1 d,#121212, 2-6 #626262,#080808, 7-13 #bdbdbd,#080808, 14-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808, +|23: 0-1 d,#262626, 2-42 #949494,#121212, 43-74 d,#121212, 75-76 d,#444444, 77-149 #bdbdbd,#080808, +|24: 0-1 d,#444444, 2-6 #626262,#080808, 7-74 #d8c8a8,#4a3a1e, 75-76 d,#444444, 77-149 #bdbdbd,#080808, +|25: 0-1 d,#444444, 2-6 #626262,#080808, 7-40 #bdbdbd,#080808, 41-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808, +|26: 0-1 d,#444444, 2-6 #626262,#080808, 7-51 #bdbdbd,#080808, 52-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808, +|27: 0-1 d,#444444, 2-6 #626262,#080808, 7-55 #bdbdbd,#080808, 56-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808, +|28: 0-1 d,#444444, 2-6 #626262,#080808, 7-40 #bdbdbd,#080808, 41-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808, +|29: 0-1 d,#121212, 2-6 #626262,#080808, 7-55 #bdbdbd,#080808, 56-74 d,#080808, 75-76 d,#444444, 77-149 #bdbdbd,#080808, +== snap step2-shell grid=150x30 cursor=7,2 +|Kill Newcol Tutor Debug NextColor Dump Find Grep Help +| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del +| 1 line 1 +| 2 line 2 big.txt +| 3 line 3 +| 4 line 4 +| 5 line 5 +| 6 line 6 +| 7 line 7 +| 8 line 8 +| 9 line 9 +| 10 line 10 +| 11 line 11 +| 12 line 12 +| 13 line 13 +| 14 line 14 +| 15 line 15 +| 16 line 16 +| 17 line 17 +| 18 line 18 +| 19 line 19 +| 20 line 20 +| 21 line 21 +| NOR /tmp/pardes-snap/jumps/cwd/+Jumps Del +| 1 /tmp/pardes-snap/jumps/cwd/big.txt:1:1 line 1 +| 2 @p1:3:3 /tmp/pardes-snap/jumps/cwd +| 3 /tmp/pardes-snap/jumps/cwd/big.txt:1:1 line 1 +| 4 /tmp/pardes-snap/jumps/cwd/big.txt:100:1 line 100 +| 5 @p1:3:3 /tmp/pardes-snap/jumps/cwd +| 6 /tmp/pardes-snap/jumps/cwd/big.txt:100:1 line 100 +== snap step4-line100 grid=150x30 cursor=7,12 +|Kill Newcol Tutor Debug NextColor Dump Find Grep Help +| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del +| 90 line 90 +| 91 line 91 big.txt +| 92 line 92 +| 93 line 93 +| 94 line 94 +| 95 line 95 +| 96 line 96 +| 97 line 97 +| 98 line 98 +| 99 line 99 +| 100 line 100 +| 101 line 101 +| 102 line 102 +| 103 line 103 +| 104 line 104 +| 105 line 105 +| 106 line 106 +| 107 line 107 +| 108 line 108 +| 109 line 109 +| 110 line 110 +| NOR /tmp/pardes-snap/jumps/cwd/+Jumps Del +| 1 /tmp/pardes-snap/jumps/cwd/big.txt:1:1 line 1 +| 2 @p1:3:3 /tmp/pardes-snap/jumps/cwd +| 3 /tmp/pardes-snap/jumps/cwd/big.txt:1:1 line 1 +| 4 /tmp/pardes-snap/jumps/cwd/big.txt:100:1 line 100 +| 5 @p1:3:3 /tmp/pardes-snap/jumps/cwd +| 6 /tmp/pardes-snap/jumps/cwd/big.txt:100:1 line 100 +== snap step-back grid=150x30 cursor=7,2 +|Kill Newcol Tutor Debug NextColor Dump Find Grep Help +| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del +| 1 line 1 +| 2 line 2 big.txt +| 3 line 3 +| 4 line 4 +| 5 line 5 +| 6 line 6 +| 7 line 7 +| 8 line 8 +| 9 line 9 +| 10 line 10 +| 11 line 11 +| 12 line 12 +| 13 line 13 +| 14 line 14 +| 15 line 15 +| 16 line 16 +| 17 line 17 +| 18 line 18 +| 19 line 19 +| 20 line 20 +| 21 line 21 +| NOR /tmp/pardes-snap/jumps/cwd/+Jumps Del +| 1 /tmp/pardes-snap/jumps/cwd/big.txt:1:1 line 1 +| 2 @p1:3:3 /tmp/pardes-snap/jumps/cwd +| 3 /tmp/pardes-snap/jumps/cwd/big.txt:1:1 line 1 +| 4 /tmp/pardes-snap/jumps/cwd/big.txt:100:1 line 100 +| 5 @p1:3:3 /tmp/pardes-snap/jumps/cwd +| 6 /tmp/pardes-snap/jumps/cwd/big.txt:100:1 line 100 +== snap look-row grid=150x30 cursor=7,12 +|Kill Newcol Tutor Debug NextColor Dump Find Grep Help +| NOR /tmp/pardes-snap/jumps/cwd/big.txt Save Del NOR /tmp/pardes-snap/jumps/cwd Del +| 90 line 90 +| 91 line 91 big.txt +| 92 line 92 +| 93 line 93 +| 94 line 94 +| 95 line 95 +| 96 line 96 +| 97 line 97 +| 98 line 98 +| 99 line 99 +| 100 line 100 +| 101 line 101 +| 102 line 102 +| 103 line 103 +| 104 line 104 +| 105 line 105 +| 106 line 106 +| 107 line 107 +| 108 line 108 +| 109 line 109 +| 110 line 110 +| NOR /tmp/pardes-snap/jumps/cwd/+Jumps Del +| 1 /tmp/pardes-snap/jumps/cwd/big.txt:1:1 line 1 +| 2 @p1:3:3 /tmp/pardes-snap/jumps/cwd +| 3 /tmp/pardes-snap/jumps/cwd/big.txt:1:1 line 1 +| 4 /tmp/pardes-snap/jumps/cwd/big.txt:100:1 line 100 +| 5 @p1:3:3 /tmp/pardes-snap/jumps/cwd +| 6 /tmp/pardes-snap/jumps/cwd/big.txt:100:1 line 100 diff --git a/test/snapshots/jumps.snap b/test/snapshots/jumps.snap new file mode 100644 index 00000000..900b63a1 --- /dev/null +++ b/test/snapshots/jumps.snap @@ -0,0 +1,85 @@ +# RULE: there is ONE focus history and it is a stack of LOCATIONS — a pane and +# a spot in it. Ctrl-o walks it back, Ctrl-i walks it forward again, `SPC j j` +# (Last) hops to the newest OTHER pane, and `SPC j l` (Jumplist) writes the +# same stack out as an output buffer whose rows are ordinary look targets, so +# n/N step them. What gets ONTO the stack is decided in one place (trackJump): +# focus ended the update in a different pane, or more than a bodyful of rows +# away in the same one — which is why `100G` below leaves a location behind +# and the j/k that follow it do not. +# +# Focus and position both show in the golden's `cursor=` header: that is the +# ACTIVE pane's cursor, so each snap is named by where it should land. +lines big.txt 200 +start 30 150 big.txt +wait 8000 big.txt +stable 700 20000 +# left column = big.txt, right column = the launch shell; the file has focus +snap start +# two focus moves, so the stack is file -> shell -> file +key space w l +stable 400 5000 +snap to-shell +key space w h +stable 400 5000 +snap to-file +# a FAR motion inside one pane: 100G is a jump, so the line we left is +# remembered and Ctrl-o can come back to it +text 100 +key G +stable 400 5000 +snap goto-100 +# Ctrl-o: back to line 1 of the same pane — a stack of panes could not do this +key c-o +stable 400 5000 +snap back-in-file +# ...and back again into the shell +key c-o +stable 400 5000 +snap back-to-shell +# Ctrl-i forward, twice: the shell entry, then line 100 again. Sent as the +# kitty-protocol CSI u (`CSI 105;5u`) because on the wire Ctrl-i IS Tab — +# see config.jump_keys. +send \e[105;5u +stable 400 5000 +snap forward-file +send \e[105;5u +stable 400 5000 +snap forward-100 +# SPC j j — the newest OTHER pane, and pressing it again comes straight back +key space j j +stable 400 5000 +snap last +key space j j +stable 400 5000 +snap last-back +# SPC j l — the stack as text: `location text` rows, the file naming itself +# and the shell spelled @pN because it has no path +key space j l +stable 700 15000 +snap jumplist +# n/N step the rows and look them, exactly as they do a +Search: the stepped +# row is selected in the buffer (snapstyle) and the pane it names follows. +# Row 1 is the file at line 1, row 2 the shell (no path, so `@pN`), row 4 the +# file at line 100 — so the body visibly rides the list. +key n +stable 700 15000 +snap step1 +snapstyle step1 +key n +stable 700 15000 +snap step2-shell +key n +stable 700 15000 +key n +stable 700 15000 +snap step4-line100 +key N +stable 700 15000 +snap step-back +# and an ordinary LOOK on a row goes there too — the leading word IS a +# location, so the right-click look resolves it like any other path. Row 4 +# again, this time by clicking it. +press right 16 28 +release right 16 28 +stable 700 15000 +snap look-row diff --git a/test/snapshots/leader.golden b/test/snapshots/leader.golden index 6f88ad7e..831d4557 100644 --- a/test/snapshots/leader.golden +++ b/test/snapshots/leader.golden @@ -196,13 +196,13 @@ | 9 SPC f g Grep | 10 SPC f s Save | 11 SPC h t Tutor -| 12 SPC k Kill -| 13 SPC l D WsDiagnostics -| 14 SPC l S WsSymbols -| 15 SPC l a CodeAction -| 16 SPC l d Diagnostics -| 17 SPC l h SelectRefs -| 18 SPC l i Lspinfo +| 12 SPC j i Forward +| 13 SPC j j Last +| 14 SPC j l Jumplist +| 15 SPC j o Back +| 16 SPC k Kill +| 17 SPC l D WsDiagnostics +| 18 SPC l S WsSymbols == snap help-group grid=100x40 cursor=7,22 |Kill Newcol Tutor Debug NextColor Dump Find Grep Help | NOR /tmp/pardes-snap/leader/cwd/cmds.txt Save De NOR /tmp/pardes-snap/leader/cwd Del @@ -360,13 +360,13 @@ | 9 SPC f g Grep | 10 SPC f s Save | 11 SPC h t Tutor -| 12 SPC k Kill -| 13 SPC l D WsDiagnostics -| 14 SPC l S WsSymbols -| 15 SPC l a CodeAction -| 16 SPC l d Diagnostics -| 17 SPC l h SelectRefs -| 18 SPC l i Lspinfo +| 12 SPC j i Forward +| 13 SPC j j Last +| 14 SPC j l Jumplist +| 15 SPC j o Back +| 16 SPC k Kill +| 17 SPC l D WsDiagnostics +| 18 SPC l S WsSymbols == snap help-toggles grid=100x40 cursor=7,22 |Kill Newcol Tutor Debug NextColor Dump Find Grep Help | NOR /tmp/pardes-snap/leader/cwd/cmds.txt Save De NOR /tmp/pardes-snap/leader/cwd Del diff --git a/test/snapshots/ttyhelp.golden b/test/snapshots/ttyhelp.golden index 6cb6d930..ec3a4fd6 100644 --- a/test/snapshots/ttyhelp.golden +++ b/test/snapshots/ttyhelp.golden @@ -45,21 +45,21 @@ | 9 SPC f g Grep | 10 SPC f s Save | 11 SPC h t Tutor -| 12 SPC k Kill -| 13 SPC l D WsDiagnostics -| 14 SPC l S WsSymbols -| 15 SPC l a CodeAction -| 16 SPC l d Diagnostics -| 17 SPC l h SelectRefs -| 18 SPC l i Lspinfo -| 19 SPC l k Hover -| 20 SPC l r Rename -| 21 SPC l s Symbols -| 22 SPC l w Lspwhy -| 23 SPC s d Dump -| 24 SPC s r Restore -| 25 SPC t a Ascii -| 26 SPC t c Colors +| 12 SPC j i Forward +| 13 SPC j j Last +| 14 SPC j l Jumplist +| 15 SPC j o Back +| 16 SPC k Kill +| 17 SPC l D WsDiagnostics +| 18 SPC l S WsSymbols +| 19 SPC l a CodeAction +| 20 SPC l d Diagnostics +| 21 SPC l h SelectRefs +| 22 SPC l i Lspinfo +| 23 SPC l k Hover +| 24 SPC l r Rename +| 25 SPC l s Symbols +| 26 SPC l w Lspwhy == snap leaderworks grid=100x30 cursor=7,4 |Kill Newcol Tutor Debug NextColor Dump Find Grep Help | TTY /tmp/pardes-snap/ttyhelp/cwd Del @@ -76,18 +76,18 @@ | 9 SPC f g Grep | 10 SPC f s Save | 11 SPC h t Tutor -| 12 SPC k Kill -| 13 SPC l D WsDiagnostics -| 14 SPC l S WsSymbols -| 15 SPC l a CodeAction -| 16 SPC l d Diagnostics -| 17 SPC l h SelectRefs -| 18 SPC l i Lspinfo -| 19 SPC l k Hover -| 20 SPC l r Rename -| 21 SPC l s Symbols -| 22 SPC l w Lspwhy -| 23 SPC s d Dump -| 24 SPC s r Restore -| 25 SPC t a Ascii -| 26 SPC t c Colors +| 12 SPC j i Forward +| 13 SPC j j Last +| 14 SPC j l Jumplist +| 15 SPC j o Back +| 16 SPC k Kill +| 17 SPC l D WsDiagnostics +| 18 SPC l S WsSymbols +| 19 SPC l a CodeAction +| 20 SPC l d Diagnostics +| 21 SPC l h SelectRefs +| 22 SPC l i Lspinfo +| 23 SPC l k Hover +| 24 SPC l r Rename +| 25 SPC l s Symbols +| 26 SPC l w Lspwhy -- cgit v1.3