mirror of
https://github.com/neovim/neovim.git
synced 2026-07-20 08:01:46 +00:00
vim-patch:9.0.1525: 'smoothscroll' does not always work properly (#23544)
Problem: 'smoothscroll' does not always work properly.
Solution: Do not reset w_skipcol after it was intentionally set. (Luuk van
Baal, closes vim/vim#12360, closes vim/vim#12199, closes vim/vim#12323)
3ce8c38915
This commit is contained in:
@@ -548,11 +548,11 @@ describe('smoothscroll', function()
|
||||
exec('set scrolloff=0')
|
||||
feed('0j')
|
||||
screen:expect([[
|
||||
<<<of text with lots of text with lots o|
|
||||
<<<th lots of text with lots of text wit|
|
||||
h lots of text with lots of text with lo|
|
||||
ts of text with lots of text with lots o|
|
||||
f text with lots of text end |
|
||||
^four |
|
||||
~ |
|
||||
~ |
|
||||
|
|
||||
]])
|
||||
-- Test zt/zz/zb that they work properly when a long line is above it
|
||||
@@ -696,7 +696,7 @@ describe('smoothscroll', function()
|
||||
end)
|
||||
|
||||
-- oldtest: Test_smoothscroll_ins_lines()
|
||||
it("this was unnecessarily inserting lines", function()
|
||||
it("does not unnecessarily insert lines", function()
|
||||
screen:try_resize(40, 6)
|
||||
exec([=[
|
||||
set wrap smoothscroll scrolloff=0 conceallevel=2 concealcursor=nc
|
||||
@@ -719,6 +719,67 @@ describe('smoothscroll', function()
|
||||
]])
|
||||
end)
|
||||
|
||||
-- oldtest: Test_smoothscroll_cursormoved_line()
|
||||
it("does not place the cursor in the command line", function()
|
||||
screen:try_resize(40, 6)
|
||||
exec([=[
|
||||
set smoothscroll
|
||||
call setline(1, [
|
||||
\'',
|
||||
\'_'->repeat(&lines * &columns),
|
||||
\(('_')->repeat(&columns - 2) .. 'xxx')->repeat(2)
|
||||
\])
|
||||
autocmd CursorMoved * eval [line('w0'), line('w$')]
|
||||
call search('xxx')
|
||||
]=])
|
||||
screen:expect([[
|
||||
<<<_____________________________________|
|
||||
________________________________________|
|
||||
______________________________________^xx|
|
||||
x______________________________________x|
|
||||
xx |
|
||||
|
|
||||
]])
|
||||
end)
|
||||
|
||||
-- oldtest: Test_smoothscroll_eob()
|
||||
it("does not scroll halfway at end of buffer", function()
|
||||
screen:try_resize(40, 10)
|
||||
exec([[
|
||||
set smoothscroll
|
||||
call setline(1, ['']->repeat(100))
|
||||
norm G
|
||||
]])
|
||||
-- does not scroll halfway when scrolling to end of buffer
|
||||
screen:expect([[
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
^ |
|
||||
|
|
||||
]])
|
||||
exec("call setline(92, 'a'->repeat(100))")
|
||||
feed('<C-B>G')
|
||||
-- cursor is not placed below window
|
||||
screen:expect([[
|
||||
<<<aaaaaaaaaaaaaaaaa |
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
^ |
|
||||
|
|
||||
]])
|
||||
end)
|
||||
|
||||
it("works with virt_lines above and below", function()
|
||||
screen:try_resize(55, 7)
|
||||
exec([=[
|
||||
|
||||
Reference in New Issue
Block a user