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:
@@ -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);
|
||||||
|
20
src/testdir/dumps/Test_conceal_cul_01.dump
Normal file
20
src/testdir/dumps/Test_conceal_cul_01.dump
Normal 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
|
20
src/testdir/dumps/Test_conceal_cul_02.dump
Normal file
20
src/testdir/dumps/Test_conceal_cul_02.dump
Normal 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
|
20
src/testdir/dumps/Test_conceal_cul_03.dump
Normal file
20
src/testdir/dumps/Test_conceal_cul_03.dump
Normal 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
|
@@ -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
|
||||||
|
@@ -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,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user