vim-patch:9.0.0671: negative topline using CTRL-Y with 'smoothscroll' and 'diff'

Problem:    Negative topline using CTRL-Y with 'smoothscroll' and 'diff'.
            (Ernie Rael)
Solution:   Only use 'smoothscroll' when 'wrap' is set.

1a58e1d97c

Co-authored-by: Bram Moolenaar <Bram@vim.org>
This commit is contained in:
Luuk van Baal
2023-04-26 16:54:23 +02:00
parent 181097e443
commit 8e4a4629ca
3 changed files with 66 additions and 10 deletions

View File

@@ -272,4 +272,33 @@ describe('smoothscroll', function()
|
]])
end)
-- oldtest: Test_smoothscroll_diff_mode()
it("works with diff mode", function()
screen:try_resize(40, 8)
exec([[
let text = 'just some text here'
call setline(1, text)
set smoothscroll
diffthis
new
call setline(1, text)
set smoothscroll
diffthis
]])
screen:expect([[
- ^just some text here |
~ |
~ |
[No Name] [+] |
- just some text here |
~ |
[No Name] [+] |
|
]])
feed('<C-Y>')
screen:expect_unchanged()
feed('<C-E>')
screen:expect_unchanged()
end)
end)

View File

@@ -158,6 +158,32 @@ func Test_smoothscroll_number()
call StopVimInTerminal(buf)
endfunc
func Test_smoothscroll_diff_mode()
CheckScreendump
let lines =<< trim END
vim9script
var text = 'just some text here'
setline(1, text)
set smoothscroll
diffthis
new
setline(1, text)
set smoothscroll
diffthis
END
call writefile(lines, 'XSmoothDiff', 'D')
let buf = RunVimInTerminal('-S XSmoothDiff', #{rows: 8})
call VerifyScreenDump(buf, 'Test_smooth_diff_1', {})
call term_sendkeys(buf, "\<C-Y>")
call VerifyScreenDump(buf, 'Test_smooth_diff_1', {})
call term_sendkeys(buf, "\<C-E>")
call VerifyScreenDump(buf, 'Test_smooth_diff_1', {})
call StopVimInTerminal(buf)
endfunc
" vim: shiftwidth=2 sts=2 expandtab