0
0
mirror of https://github.com/vim/vim.git synced 2025-09-25 03:54:15 -04:00

patch 8.1.0746: highlighting not updated with conceal and 'cursorline'

Problem:    Highlighting not updated with conceal and 'cursorline'. (Jason
            Franklin)
Solution:   Do not use a zero line number.  Check if 'conceallevel' is set for
            the current window.
This commit is contained in:
Bram Moolenaar
2019-01-14 21:51:40 +01:00
parent 99b1272f88
commit bbee8d5122
6 changed files with 92 additions and 0 deletions

View File

@@ -1170,6 +1170,10 @@ main_loop(
// locked, this would be a good time to handle the drop. // locked, this would be a good time to handle the drop.
handle_any_postponed_drop(); handle_any_postponed_drop();
#endif #endif
#ifdef FEAT_CONCEAL
if (curwin->w_p_cole == 0)
conceal_update_lines = FALSE;
#endif
/* Trigger CursorMoved if the cursor moved. */ /* Trigger CursorMoved if the cursor moved. */
if (!finish_op && ( if (!finish_op && (
@@ -1201,6 +1205,7 @@ main_loop(
|| need_cursor_line_redraw)) || need_cursor_line_redraw))
{ {
if (conceal_old_cursor_line != conceal_new_cursor_line if (conceal_old_cursor_line != conceal_new_cursor_line
&& conceal_old_cursor_line != 0
&& conceal_old_cursor_line && conceal_old_cursor_line
<= curbuf->b_ml.ml_line_count) <= curbuf->b_ml.ml_line_count)
redrawWinline(curwin, conceal_old_cursor_line); redrawWinline(curwin, conceal_old_cursor_line);

View File

@@ -0,0 +1,20 @@
|o+0&#ffffff0|n|e| @71
|t|w|o| @71
>t+8&&|h|r|e@1| @69
|f+0&&|o|u|r| @70
|f|i|v|e| @70
|~+0#4040ff13&| @73
|~| @73
|~| @73
|~| @73
|[+3#0000000&|N|o| |N|a|m|e|]| |[|+|]| @43|3|,|1| @11|A|l@1
| +0&&@74
|t+8&&|h|i|s| |i|s| |a| |t|e|s|t| @60
|~+0#4040ff13&| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @43|2|,|1|4| @10|A|l@1
| +0&&@74

View File

@@ -0,0 +1,20 @@
|o+0&#ffffff0|n|e| @71
|t|w|o| @71
|t+8&&|h|r|e@1| @69
|f+0&&|o|u|r| @70
|f|i|v|e| @70
|~+0#4040ff13&| @73
|~| @73
|~| @73
|~| @73
|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @43|3|,|1| @11|A|l@1
| +0&&@74
|t+8&&|h|i|s| |i|s| |a| |t|e|s>t| @60
|~+0#4040ff13&| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|[+3#0000000&|N|o| |N|a|m|e|]| |[|+|]| @43|2|,|1|4| @10|A|l@1
|:+0&&|w|i|n|c|m|d| |w| @65

View File

@@ -0,0 +1,20 @@
|o+0&#ffffff0|n|e| @71
|t|w|o| @71
|t+8&&|h|r|e@1| @69
|f+0&&|o|u|r| @70
|f|i|v|e| @70
|~+0#4040ff13&| @73
|~| @73
|~| @73
|~| @73
|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @43|3|,|1| @11|A|l@1
> +8&&@74
|t+0&&|h|i|s| |i|s| |a| |t|e|s|t| @60
|~+0#4040ff13&| @73
|~| @73
|~| @73
|~| @73
|~| @73
|~| @73
|[+3#0000000&|N|o| |N|a|m|e|]| |[|+|]| @43|1|,|0|-|1| @9|A|l@1
|:+0&&|w|i|n|c|m|d| |w| @65

View File

@@ -109,3 +109,28 @@ func Test_conceal_two_windows()
call StopVimInTerminal(buf) call StopVimInTerminal(buf)
call delete('XTest_conceal') call delete('XTest_conceal')
endfunc endfunc
func Test_conceal_with_cursorline()
" Opens a help window, where 'conceal' is set, switches to the other window
" where 'cursorline' needs to be updated when the cursor moves.
call writefile([
\ 'set cursorline',
\ 'normal othis is a test',
\ 'new',
\ 'call setline(1, ["one", "two", "three", "four", "five"])',
\ 'set ft=help',
\ 'normal M',
\ ], 'XTest_conceal_cul')
let buf = RunVimInTerminal('-S XTest_conceal_cul', {})
call VerifyScreenDump(buf, 'Test_conceal_cul_01', {})
call term_sendkeys(buf, ":wincmd w\r")
call VerifyScreenDump(buf, 'Test_conceal_cul_02', {})
call term_sendkeys(buf, "k")
call VerifyScreenDump(buf, 'Test_conceal_cul_03', {})
" clean up
call StopVimInTerminal(buf)
call delete('XTest_conceal_cul')
endfunc

View File

@@ -795,6 +795,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 */
/**/
746,
/**/ /**/
745, 745,
/**/ /**/