diff options
| author | Gabriel Schneider <[email protected]> | 2026-07-06 15:07:28 -0300 |
|---|---|---|
| committer | Gabriel Schneider <[email protected]> | 2026-08-01 15:02:07 -0300 |
| commit | 5552ecb3460a8c91d12e0469ba12debe688cc6f8 (patch) | |
| tree | 100a0c96a0db2f552ad5e356042b9e1a19780d72 /test/snapshots | |
| parent | de4def3548a6729b0dfd2120495a61beef8c8c2c (diff) | |
| download | pardes-5552ecb3460a8c91d12e0469ba12debe688cc6f8.tar.gz pardes-5552ecb3460a8c91d12e0469ba12debe688cc6f8.zip | |
scrolloff: keyboard cursor moves keep 3 context rows above/below the cursor (vim scrolloff). One reconcile in Pane.ensureCursorVisible — every keyboard path (normal-mode motions, insert entry/edits, delete/yank/paste/undo/redo) already funnels through it; mouse click/wheel untouched. Clamps: line 0 at top, EOF-at-bottom-row for files (terminals let the vt clamp at the live bottom), margin shrinks on panes shorter than 2*off+1. New scrolloff.snap golden proves j-walk scroll at the margin, gg/top-row reachability, k-walk margin, G bottom clamp. 19/19 snapshots green; no existing goldens changed.
Diffstat (limited to 'test/snapshots')
| -rw-r--r-- | test/snapshots/scrolloff.golden | 217 | ||||
| -rw-r--r-- | test/snapshots/scrolloff.snap | 41 |
2 files changed, 258 insertions, 0 deletions
diff --git a/test/snapshots/scrolloff.golden b/test/snapshots/scrolloff.golden new file mode 100644 index 00000000..ed0992ad --- /dev/null +++ b/test/snapshots/scrolloff.golden @@ -0,0 +1,217 @@ +== snap top grid=100x30 cursor=7,2 +|Kill Newcol Tutor Debug Colors NextColor Dump +| nm /tmp/pardes-snap/scrolloff/cwd/g.txt Save Del nm /tmp/pardes-snap/scrolloff/cwd Del +| 1 line 1 +| 2 line 2 g.txt +| 3 line 3 +| 4 line 4 +| 5 line 5 +| 6 line 6 +| 7 line 7 +| 8 line 8 +| 9 line 9 +| nm /tmp/pardes-snap/scrolloff/cwd Del +| +| g.txt +| +| +| +| +| +| +| +| nm /tmp/pardes-snap/scrolloff/cwd Del +| +| g.txt +| +| +| +| +| +| +== snap edge grid=100x30 cursor=7,7 +|Kill Newcol Tutor Debug Colors NextColor Dump +| nm /tmp/pardes-snap/scrolloff/cwd/g.txt Save Del nm /tmp/pardes-snap/scrolloff/cwd Del +| 1 line 1 +| 2 line 2 g.txt +| 3 line 3 +| 4 line 4 +| 5 line 5 +| 6 line 6 +| 7 line 7 +| 8 line 8 +| 9 line 9 +| nm /tmp/pardes-snap/scrolloff/cwd Del +| +| g.txt +| +| +| +| +| +| +| +| nm /tmp/pardes-snap/scrolloff/cwd Del +| +| g.txt +| +| +| +| +| +| +== snap scrolled1 grid=100x30 cursor=7,7 +|Kill Newcol Tutor Debug Colors NextColor Dump +| nm /tmp/pardes-snap/scrolloff/cwd/g.txt Save Del nm /tmp/pardes-snap/scrolloff/cwd Del +| 2 line 2 +| 3 line 3 g.txt +| 4 line 4 +| 5 line 5 +| 6 line 6 +| 7 line 7 +| 8 line 8 +| 9 line 9 +| 10 line 10 +| nm /tmp/pardes-snap/scrolloff/cwd Del +| +| g.txt +| +| +| +| +| +| +| +| nm /tmp/pardes-snap/scrolloff/cwd Del +| +| g.txt +| +| +| +| +| +| +== snap jdown grid=100x30 cursor=7,7 +|Kill Newcol Tutor Debug Colors NextColor Dump +| nm /tmp/pardes-snap/scrolloff/cwd/g.txt Save Del nm /tmp/pardes-snap/scrolloff/cwd Del +| 6 line 6 +| 7 line 7 g.txt +| 8 line 8 +| 9 line 9 +| 10 line 10 +| 11 line 11 +| 12 line 12 +| 13 line 13 +| 14 line 14 +| nm /tmp/pardes-snap/scrolloff/cwd Del +| +| g.txt +| +| +| +| +| +| +| +| nm /tmp/pardes-snap/scrolloff/cwd Del +| +| g.txt +| +| +| +| +| +| +== snap end grid=100x30 cursor=7,10 +|Kill Newcol Tutor Debug Colors NextColor Dump +| nm /tmp/pardes-snap/scrolloff/cwd/g.txt Save Del nm /tmp/pardes-snap/scrolloff/cwd Del +| 33 line 33 +| 34 line 34 g.txt +| 35 line 35 +| 36 line 36 +| 37 line 37 +| 38 line 38 +| 39 line 39 +| 40 line 40 +| 41 +| nm /tmp/pardes-snap/scrolloff/cwd Del +| +| g.txt +| +| +| +| +| +| +| +| nm /tmp/pardes-snap/scrolloff/cwd Del +| +| g.txt +| +| +| +| +| +| +== snap kup grid=100x30 cursor=7,5 +|Kill Newcol Tutor Debug Colors NextColor Dump +| nm /tmp/pardes-snap/scrolloff/cwd/g.txt Save Del nm /tmp/pardes-snap/scrolloff/cwd Del +| 30 line 30 +| 31 line 31 g.txt +| 32 line 32 +| 33 line 33 +| 34 line 34 +| 35 line 35 +| 36 line 36 +| 37 line 37 +| 38 line 38 +| nm /tmp/pardes-snap/scrolloff/cwd Del +| +| g.txt +| +| +| +| +| +| +| +| nm /tmp/pardes-snap/scrolloff/cwd Del +| +| g.txt +| +| +| +| +| +| +== snap top2 grid=100x30 cursor=7,2 +|Kill Newcol Tutor Debug Colors NextColor Dump +| nm /tmp/pardes-snap/scrolloff/cwd/g.txt Save Del nm /tmp/pardes-snap/scrolloff/cwd Del +| 1 line 1 +| 2 line 2 g.txt +| 3 line 3 +| 4 line 4 +| 5 line 5 +| 6 line 6 +| 7 line 7 +| 8 line 8 +| 9 line 9 +| nm /tmp/pardes-snap/scrolloff/cwd Del +| +| g.txt +| +| +| +| +| +| +| +| nm /tmp/pardes-snap/scrolloff/cwd Del +| +| g.txt +| +| +| +| +| +| diff --git a/test/snapshots/scrolloff.snap b/test/snapshots/scrolloff.snap new file mode 100644 index 00000000..e231e8de --- /dev/null +++ b/test/snapshots/scrolloff.snap @@ -0,0 +1,41 @@ +# scrolloff: keyboard motion keeps 3 context rows above/below the cursor, +# clamped at file boundaries (cursor may reach the top/bottom body row there) +lines g.txt 40 +start 30 100 +wait 8000 g.txt +stable 700 20000 +# right-click the g.txt name in the greeting ls -> file pane, 9 body rows +press right 4 4 +release right 4 4 +wait 10000 line 3 +stable 700 15000 +press left 10 3 +release left 10 3 +stable 400 5000 +# (b) gg: cursor CAN sit on the top body row, no forced scroll +key g g +stable 400 5000 +snap top +# (a) five j's reach the bottom margin (visual row 5 of 9) without scrolling... +key j j j j j +stable 400 5000 +snap edge +# ...the sixth j scrolls: view slides one line, cursor holds the margin +key j +stable 400 5000 +snap scrolled1 +key j j j j +stable 400 5000 +snap jdown +# (d) G: bottom clamp, view stops at EOF-at-bottom, cursor on the bottom row +key G +stable 400 5000 +snap end +# (c) k-walk up: cursor climbs to the top margin, then the view scrolls +key k k k k k k k k +stable 400 5000 +snap kup +# (b) again from deep in the file: gg puts the cursor back on the top row +key g g +stable 400 5000 +snap top2 |
