vim-patch:9.1.0414: Unable to leave long line with 'smoothscroll' and 'scrolloff'

Problem:  Unable to leave long line with 'smoothscroll' and 'scrolloff'.
          Corrupted screen near the end of a long line with 'scrolloff'.
          (Ernie Rael, after 9.1.0280)
Solution: Only correct cursor in case scroll_cursor_bot() was not itself
          called to make the cursor visible. Avoid adjusting for
          'scrolloff' beyond the text line height (Luuk van Baal)

b32055e504

vim-patch:9.1.0416: some screen dump tests can be improved

Problem:  some screen dump tests can be improved (after 9.1.0414)
Solution: Make sure screen state changes properly and is captured in the
          screen dumps (Luuk van Baal)

2e642734f4
(cherry picked from commit f178b8ba49)
This commit is contained in:
Luuk van Baal
2024-05-16 21:31:10 +02:00
committed by github-actions[bot]
parent 81560bbdbf
commit 9c91233a38
3 changed files with 139 additions and 2 deletions

View File

@@ -1197,4 +1197,91 @@ describe('smoothscroll', function()
|
]])
end)
it('works with very long line and scrolloff', function()
screen:try_resize(40, 8)
exec([[
set smoothscroll scrolloff=3
call setline(1, ['one', 'two long '->repeat(100), 'three', 'four', 'five', 'six'])
]])
--FIXME: incorrect screen due to reset_skipcol()/curs_columns() shenanigans
feed(':norm j721|<CR>')
screen:expect([[
two long two long two long two long two |
long two long two long two long two long|
two long two long two long two long two|
^ long two long two long two long two lon|
g two long two long two long two long tw|
o long two long two long two long two lo|
ng two long two long two long two long t|
:norm j721| |
]])
feed('gj')
screen:expect([[
{1:<<<}two long two long two long two long t|
wo long two long two long two long two l|
ong two long two long two long two long |
two long two long two long two long two |
^long two long two long two long two long|
two long two long two long two long two|
long two long two long two long two lon|
:norm j721| |
]])
feed('gj')
screen:expect([[
{1:<<<}long two long two long two long two l|
ong two long two long two long two long |
two long two long two long two long two |
long two long two long two long two long|
^ two long two long two long two long two|
long two long two long two long two lon|
g two long two long |
:norm j721| |
]])
feed('gj')
screen:expect([[
{1:<<<}long two long two long two long two l|
ong two long two long two long two long |
two long two long two long two long two |
long two long two long two long two long|
two long two long two long two long two|
^ long two long two long two long two lon|
g two long two long |
:norm j721| |
]])
feed('gj')
screen:expect([[
{1:<<<}long two long two long two long two l|
ong two long two long two long two long |
two long two long two long two long two |
long two long two long two long two long|
two long two long two long two long two|
long two long two long two long two lon|
^g two long two long |
:norm j721| |
]])
feed('gj')
screen:expect([[
{1:<<<} long two long two long two long two |
long two long two long two long two long|
two long two long two long two long two|
long two long two long two long two lon|
g two long two long |
^three |
four |
:norm j721| |
]])
feed('gk')
--FIXME: incorrect screen due to reset_skipcol()/curs_columns() shenanigans
screen:expect([[
two long two long two long two long two |
long two long two long two long two long|
two long two long two long two long two|
long two long two long two long two lon|
g two long two long two long two long tw|
o long two long two long two long two lo|
^ng two long two long two long two long t|
:norm j721| |
]])
end)
end)