aboutsummaryrefslogtreecommitdiff
path: root/test/functional/ui/scrollbind_spec.lua
Commit message (Collapse)AuthorAge
* revert(scrollbind): revert #41519 due to regressionsYanuo Ma2026-09-10
| | | | | | | | | | | | | | | | | Problem: Resetting w_scbind_pos to the displayed position discards pending scroll distance. This breaks scrollbind with asymmetric folds and leaves persistent offsets after tall virtual-line blocks. Wrapped lines with smoothscroll also show increased follower lag. Solution: Revert the original change and its test. This restores the previous behavior, including the original tall-virt_lines oscillation, while a replacement is reviewed separately. This reverts commit b781e95a24bd2d201f4afbe4729635114893cdf5. AI-assisted
* fix(scrollbind): window jumps back and forth with tall virt_lines blockYanuo Ma2026-09-08
| | | | | | | | | | | | | Problem: Scrolling a 'scrollbind' window whose peer has a virt_lines block taller than the window makes the peer jump back and forth. Solution: After scrollup()/scrolldown(), sync w_scbind_pos to the actual get_vtopline() when the target was not clamped to buffer bounds. Ref: esmuellert/codediff.nvim#519 AI-assisted
* test: fix wrong order of args to eq(), neq() #41499zeertzjq2026-08-26
|
* test(harness): migrate away from magic globalsJustin M. Keyes2026-07-21
| | | | | | | | | | | | | | | | | | | | | Problem: The magic globals `it`, `describe`, etc., are more trouble than they are worth. - Hooking into `after_each` requires `getfenv()` hacks. - They confuse luals/emmylua, because the top-level `.luarc.json` isn't merged with `test/.luarc.json` (apparently a luals limitation?) - They totally defeat discoverability because the user just has to "know" about the various magic symbols. So they harm DX, which means they serve no purpose at all. Solution: - Expose the test API from `testutil`, so tests can call `t.it()`, `t.describe()`, etc., in the conventional way. - Drop `getfenv()` hacks. - Drop the `setfenv()` injection in `load_chunk`. - Drop `test/_meta.lua`.
* fix(tests): needing two calls to setup a screen is cringebfredl2024-11-14
| | | | | | | | | | Before calling "attach" a screen object is just a dummy container for (row, col) values whose purpose is to be sent as part of the "attach" function call anyway. Just create the screen in an attached state directly. Keep the complete (row, col, options) config together. It is still completely valid to later detach and re-attach as needed, including to another session.
* fix(scrollbind): properly take filler/virtual lines into accountLewis Russell2024-07-31
Problem: `'scrollbind'` does not work properly if the window being scrolled automatically contains any filler/virtual lines (except for diff filler lines). This is because when the scrollbind check is done, the logic only considers changes to topline which are represented as line numbers. Solution: Write the logic for determine the scroll amount to take into account filler/virtual lines. Fixes #29751