diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-01-14 21:51:40 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-01-14 21:51:40 +0100 |
commit | bbee8d5122b159683b3f52eddd0da85fcf1fcbfd (patch) | |
tree | 49e9596818b1c4fdc21c0e9ee7876dfff6b78a5c | |
parent | 99b1272f88a493421d438e5e184003763efb4b8f (diff) | |
download | vim-git-bbee8d5122b159683b3f52eddd0da85fcf1fcbfd.tar.gz |
patch 8.1.0746: highlighting not updated with conceal and 'cursorline'v8.1.0746
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.
-rw-r--r-- | src/main.c | 5 | ||||
-rw-r--r-- | src/testdir/dumps/Test_conceal_cul_01.dump | 20 | ||||
-rw-r--r-- | src/testdir/dumps/Test_conceal_cul_02.dump | 20 | ||||
-rw-r--r-- | src/testdir/dumps/Test_conceal_cul_03.dump | 20 | ||||
-rw-r--r-- | src/testdir/test_conceal.vim | 25 | ||||
-rw-r--r-- | src/version.c | 2 |
6 files changed, 92 insertions, 0 deletions
diff --git a/src/main.c b/src/main.c index b69380016..9e23606cc 100644 --- a/src/main.c +++ b/src/main.c @@ -1170,6 +1170,10 @@ main_loop( // locked, this would be a good time to handle the drop. handle_any_postponed_drop(); #endif +#ifdef FEAT_CONCEAL + if (curwin->w_p_cole == 0) + conceal_update_lines = FALSE; +#endif /* Trigger CursorMoved if the cursor moved. */ if (!finish_op && ( @@ -1201,6 +1205,7 @@ main_loop( || need_cursor_line_redraw)) { if (conceal_old_cursor_line != conceal_new_cursor_line + && conceal_old_cursor_line != 0 && conceal_old_cursor_line <= curbuf->b_ml.ml_line_count) redrawWinline(curwin, conceal_old_cursor_line); diff --git a/src/testdir/dumps/Test_conceal_cul_01.dump b/src/testdir/dumps/Test_conceal_cul_01.dump new file mode 100644 index 000000000..6d698d1a8 --- /dev/null +++ b/src/testdir/dumps/Test_conceal_cul_01.dump @@ -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 diff --git a/src/testdir/dumps/Test_conceal_cul_02.dump b/src/testdir/dumps/Test_conceal_cul_02.dump new file mode 100644 index 000000000..46b296c87 --- /dev/null +++ b/src/testdir/dumps/Test_conceal_cul_02.dump @@ -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 diff --git a/src/testdir/dumps/Test_conceal_cul_03.dump b/src/testdir/dumps/Test_conceal_cul_03.dump new file mode 100644 index 000000000..275f35cce --- /dev/null +++ b/src/testdir/dumps/Test_conceal_cul_03.dump @@ -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 diff --git a/src/testdir/test_conceal.vim b/src/testdir/test_conceal.vim index 4a0538758..685c89175 100644 --- a/src/testdir/test_conceal.vim +++ b/src/testdir/test_conceal.vim @@ -109,3 +109,28 @@ func Test_conceal_two_windows() call StopVimInTerminal(buf) call delete('XTest_conceal') 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 diff --git a/src/version.c b/src/version.c index 60d82d206..4b21d288c 100644 --- a/src/version.c +++ b/src/version.c @@ -796,6 +796,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 746, +/**/ 745, /**/ 744, |