mirror of
https://github.com/vim/vim.git
synced 2025-09-27 04:14:06 -04:00
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 #10013)
This commit is contained in:
@@ -1058,6 +1058,10 @@ doESCkey:
|
|||||||
case K_COMMAND: // <Cmd>command<CR>
|
case K_COMMAND: // <Cmd>command<CR>
|
||||||
case K_SCRIPT_COMMAND: // <ScriptCmd>command<CR>
|
case K_SCRIPT_COMMAND: // <ScriptCmd>command<CR>
|
||||||
do_cmdkey_command(c, 0);
|
do_cmdkey_command(c, 0);
|
||||||
|
#ifdef FEAT_SYN_HL
|
||||||
|
// Might need to update for 'cursorline'.
|
||||||
|
check_redraw_cursorline();
|
||||||
|
#endif
|
||||||
#ifdef FEAT_TERMINAL
|
#ifdef FEAT_TERMINAL
|
||||||
if (term_use_loop())
|
if (term_use_loop())
|
||||||
// Started a terminal that gets the input, exit Insert mode.
|
// Started a terminal that gets the input, exit Insert mode.
|
||||||
|
@@ -6971,6 +6971,10 @@ nv_edit(cmdarg_T *cap)
|
|||||||
coladvance(getviscol());
|
coladvance(getviscol());
|
||||||
State = save_State;
|
State = save_State;
|
||||||
}
|
}
|
||||||
|
#ifdef FEAT_SYN_HL
|
||||||
|
// Might need to update for 'cursorline'.
|
||||||
|
check_redraw_cursorline();
|
||||||
|
#endif
|
||||||
|
|
||||||
invoke_edit(cap, FALSE, cap->cmdchar, FALSE);
|
invoke_edit(cap, FALSE, cap->cmdchar, FALSE);
|
||||||
}
|
}
|
||||||
|
8
src/testdir/dumps/Test_cursorline_screenline_1.dump
Normal file
8
src/testdir/dumps/Test_cursorline_screenline_1.dump
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
|x+0&#ffffff0|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z
|
||||||
|
| +8&&|x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| > @29
|
||||||
|
|~+0#4040ff13&| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|-+2#0000000&@1| |I|N|S|E|R|T| |-@1| +0&&@44|1|,|1|2|1| @8|A|l@1|
|
8
src/testdir/dumps/Test_cursorline_screenline_2.dump
Normal file
8
src/testdir/dumps/Test_cursorline_screenline_2.dump
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
>x+8&#ffffff0|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z
|
||||||
|
| +0&&|x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| |x|y|z| @30
|
||||||
|
|~+0#4040ff13&| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|~| @73
|
||||||
|
|-+2#0000000&@1| |I|N|S|E|R|T| |-@1| +0&&@44|1|,|1| @10|A|l@1|
|
@@ -272,5 +272,26 @@ func Test_cursorline_callback()
|
|||||||
call delete('Xcul_timer')
|
call delete('Xcul_timer')
|
||||||
endfunc
|
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
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@@ -750,6 +750,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
4630,
|
||||||
/**/
|
/**/
|
||||||
4629,
|
4629,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user