mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.1.0849: cursorline highlight is not always updated
Problem: Cursorline highlight is not always updated. Solution: Set w_last_cursorline when redrawing. Fix resetting cursor flags when using the popup menu.
This commit is contained in:
parent
b191be2f00
commit
c07ff5c60a
@ -368,7 +368,7 @@ pum_call_update_screen()
|
||||
// Update the cursor position to be able to compute the popup menu
|
||||
// position. The cursor line length may have changed because of the
|
||||
// inserted completion.
|
||||
curwin->w_valid &= VALID_CROW|VALID_CHEIGHT;
|
||||
curwin->w_valid &= ~(VALID_CROW|VALID_CHEIGHT);
|
||||
validate_cursor();
|
||||
}
|
||||
|
||||
|
@ -3712,6 +3712,7 @@ win_line(
|
||||
{
|
||||
line_attr = HL_ATTR(HLF_CUL);
|
||||
area_highlighting = TRUE;
|
||||
wp->w_last_cursorline = wp->w_cursor.lnum;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
8
src/testdir/dumps/Test_cursorline_yank_01.dump
Normal file
8
src/testdir/dumps/Test_cursorline_yank_01.dump
Normal file
@ -0,0 +1,8 @@
|
||||
| +0#af5f00255#ffffff0@1|3| | +0#0000000&@70
|
||||
| +0#af5f00255&@1|2| |1+0#0000000&| @69
|
||||
| +0#af5f00255&@1|1| |2+0#0000000&| @69
|
||||
| +0#af5f00255&@1|0| >3+8#0000000&| @69
|
||||
| +0#af5f00255&@1|1| | +0#0000000&@70
|
||||
|~+0#4040ff13&| @73
|
||||
|~| @73
|
||||
|4+0#0000000&| |l|i|n|e|s| |y|a|n|k|e|d| @42|4|,|1| @10|A|l@1|
|
@ -1,6 +1,7 @@
|
||||
" Tests for ":highlight" and highlighting.
|
||||
|
||||
source view_util.vim
|
||||
source screendump.vim
|
||||
|
||||
func Test_highlight()
|
||||
" basic test if ":highlight" doesn't crash
|
||||
@ -129,10 +130,6 @@ func Test_highlight_eol_with_cursorline()
|
||||
endfunc
|
||||
|
||||
func Test_highlight_eol_with_cursorline_vertsplit()
|
||||
if !has('vertsplit')
|
||||
return
|
||||
endif
|
||||
|
||||
let [hiCursorLine, hi_ul, hi_bg] = HiCursorLine()
|
||||
|
||||
call NewWindow('topleft 5', 5)
|
||||
@ -533,3 +530,25 @@ func Test_termguicolors()
|
||||
set t_Co=0
|
||||
redraw
|
||||
endfunc
|
||||
|
||||
func Test_cursorline_after_yank()
|
||||
if !CanRunVimInTerminal()
|
||||
return
|
||||
endif
|
||||
|
||||
call writefile([
|
||||
\ 'set cul rnu',
|
||||
\ 'call setline(1, ["","1","2","3",""])',
|
||||
\ ], 'Xtest_cursorline_yank')
|
||||
let buf = RunVimInTerminal('-S Xtest_cursorline_yank', {'rows': 8})
|
||||
call term_wait(buf)
|
||||
call term_sendkeys(buf, "Gy3k")
|
||||
call term_wait(buf)
|
||||
call term_sendkeys(buf, "jj")
|
||||
|
||||
call VerifyScreenDump(buf, 'Test_cursorline_yank_01', {})
|
||||
|
||||
" clean up
|
||||
call StopVimInTerminal(buf)
|
||||
call delete('Xtest_cursorline_yank')
|
||||
endfunc
|
||||
|
@ -783,6 +783,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
849,
|
||||
/**/
|
||||
848,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user