mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:8.2.4630: 'cursorline' not always updated with 'culopt' is "screenline"
Problem: 'cursorline' not always updated with 'cursorlineopt' is
"screenline".
Solution: Call check_redraw_cursorline() more often. (closes vim/vim#10013)
bf269ed0b0
Code was reverted in patch 8.2.4638, so this just ports the test.
This commit is contained in:
parent
4baeb96c1b
commit
ab02b28b4e
@ -293,5 +293,26 @@ func Test_cursorline_callback()
|
||||
call delete('Xcul_timer')
|
||||
endfunc
|
||||
|
||||
func Test_cursorline_screenline_update()
|
||||
CheckScreendump
|
||||
|
||||
let lines =<< trim END
|
||||
call setline(1, repeat('xyz ', 30))
|
||||
set cursorline cursorlineopt=screenline
|
||||
inoremap <F2> <Cmd>call cursor(1, 1)<CR>
|
||||
END
|
||||
call writefile(lines, 'Xcul_screenline')
|
||||
|
||||
let buf = RunVimInTerminal('-S Xcul_screenline', #{rows: 8})
|
||||
call term_sendkeys(buf, "A")
|
||||
call VerifyScreenDump(buf, 'Test_cursorline_screenline_1', {})
|
||||
call term_sendkeys(buf, "\<F2>")
|
||||
call VerifyScreenDump(buf, 'Test_cursorline_screenline_2', {})
|
||||
call term_sendkeys(buf, "\<Esc>")
|
||||
|
||||
call StopVimInTerminal(buf)
|
||||
call delete('Xcul_screenline')
|
||||
endfunc
|
||||
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
@ -937,17 +937,18 @@ describe('CursorLine and CursorLineNr highlights', function()
|
||||
[2] = {foreground = Screen.colors.Yellow};
|
||||
[3] = {foreground = Screen.colors.Red, background = Screen.colors.Green};
|
||||
[4] = {foreground = Screen.colors.Green, background = Screen.colors.Red};
|
||||
[5] = {bold = true}, -- ModeMsg
|
||||
})
|
||||
screen:attach()
|
||||
|
||||
feed_command('set wrap cursorline cursorlineopt=screenline')
|
||||
feed_command('set showbreak=>>>')
|
||||
feed_command('highlight clear NonText')
|
||||
feed_command('highlight clear CursorLine')
|
||||
feed_command('highlight NonText guifg=Yellow gui=NONE')
|
||||
feed_command('highlight LineNr guifg=Red guibg=Green gui=NONE')
|
||||
feed_command('highlight CursorLine guifg=Black guibg=White gui=NONE')
|
||||
feed_command('highlight CursorLineNr guifg=Green guibg=Red gui=NONE')
|
||||
command('set wrap cursorline cursorlineopt=screenline')
|
||||
command('set showbreak=>>>')
|
||||
command('highlight clear NonText')
|
||||
command('highlight clear CursorLine')
|
||||
command('highlight NonText guifg=Yellow gui=NONE')
|
||||
command('highlight LineNr guifg=Red guibg=Green gui=NONE')
|
||||
command('highlight CursorLine guifg=Black guibg=White gui=NONE')
|
||||
command('highlight CursorLineNr guifg=Green guibg=Red gui=NONE')
|
||||
|
||||
feed('30iø<esc>o<esc>30ia<esc>')
|
||||
|
||||
@ -977,7 +978,7 @@ describe('CursorLine and CursorLineNr highlights', function()
|
||||
]])
|
||||
|
||||
-- CursorLineNr should not apply to line number when 'cursorlineopt' does not contain "number"
|
||||
feed_command('set relativenumber numberwidth=2')
|
||||
command('set relativenumber numberwidth=2')
|
||||
screen:expect([[
|
||||
{3:0 }{1:øøøøøøøøøøøø^øøøøøø}|
|
||||
{3: }{2:>>>}øøøøøøøøøøøø |
|
||||
@ -987,7 +988,7 @@ describe('CursorLine and CursorLineNr highlights', function()
|
||||
]])
|
||||
|
||||
-- CursorLineNr should apply to line number when 'cursorlineopt' contains "number"
|
||||
feed_command('set cursorlineopt+=number')
|
||||
command('set cursorlineopt+=number')
|
||||
screen:expect([[
|
||||
{4:0 }{1:øøøøøøøøøøøø^øøøøøø}|
|
||||
{3: }{2:>>>}øøøøøøøøøøøø |
|
||||
@ -1019,6 +1020,44 @@ describe('CursorLine and CursorLineNr highlights', function()
|
||||
{3: }{2:>>>}{1:aaaaaaaaa^aaa }|
|
||||
|
|
||||
]])
|
||||
|
||||
-- updated in Insert mode
|
||||
feed('I')
|
||||
screen:expect([[
|
||||
{3:1 }øøøøøøøøøøøøøøøøøø|
|
||||
{3: }{2:>>>}øøøøøøøøøøøø |
|
||||
{4:0 }{1:^aaaaaaaaaaaaaaaaaa}|
|
||||
{3: }{2:>>>}aaaaaaaaaaaa |
|
||||
{5:-- INSERT --} |
|
||||
]])
|
||||
|
||||
feed('<Esc>gg')
|
||||
screen:expect([[
|
||||
{4:0 }{1:^øøøøøøøøøøøøøøøøøø}|
|
||||
{3: }{2:>>>}øøøøøøøøøøøø |
|
||||
{3:1 }aaaaaaaaaaaaaaaaaa|
|
||||
{3: }{2:>>>}aaaaaaaaaaaa |
|
||||
|
|
||||
]])
|
||||
|
||||
command('inoremap <F2> <Cmd>call cursor(1, 1)<CR>')
|
||||
feed('A')
|
||||
screen:expect([[
|
||||
{4:0 }øøøøøøøøøøøøøøøøøø|
|
||||
{3: }{2:>>>}{1:øøøøøøøøøøøø^ }|
|
||||
{3:1 }aaaaaaaaaaaaaaaaaa|
|
||||
{3: }{2:>>>}aaaaaaaaaaaa |
|
||||
{5:-- INSERT --} |
|
||||
]])
|
||||
|
||||
feed('<F2>')
|
||||
screen:expect([[
|
||||
{4:0 }{1:^øøøøøøøøøøøøøøøøøø}|
|
||||
{3: }{2:>>>}øøøøøøøøøøøø |
|
||||
{3:1 }aaaaaaaaaaaaaaaaaa|
|
||||
{3: }{2:>>>}aaaaaaaaaaaa |
|
||||
{5:-- INSERT --} |
|
||||
]])
|
||||
end)
|
||||
|
||||
it('always updated. vim-patch:8.1.0849', function()
|
||||
|
Loading…
Reference in New Issue
Block a user