diff options
author | zeertzjq <zeertzjq@outlook.com> | 2024-03-13 20:06:34 +0100 |
---|---|---|
committer | Christian Brabandt <cb@256bit.org> | 2024-03-13 20:09:02 +0100 |
commit | 21b0a3df8c4abb884489dfcc0c92b1bbe058f291 (patch) | |
tree | e0209637f4f0d58ee48bccf5fe5e2a89ecc763cd /src/testdir | |
parent | 760f664213dea9a300454992ba1589f4601d622f (diff) |
patch 9.1.0174: 'cursorline' and 'wincolor' hl missing with conceal and wrapv9.1.0174
Problem: 'cursorline' and 'wincolor' highlight missing with concealed and
wrapped lines.
Solution: Apply 'cursorline' and 'wincolor' highlight to boguscols.
(zeertzjq)
Since 'cursorline' and 'wincolor' highlight apply after the end of the
line, it is more consistent to have them also apply to boguscols.
Assigning MAXCOL to values in ScreenCols[] make mouse click behave the
same with 'cursorline' and 'nocursorline', but such behavior may be
incorrect, as it puts the cursor on the next screen line. That may be
fixed in a future PR.
closes: #14192
Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'src/testdir')
-rw-r--r-- | src/testdir/dumps/Test_conceal_cul_wcr_01.dump | 4 | ||||
-rw-r--r-- | src/testdir/dumps/Test_conceal_cul_wcr_02.dump | 4 | ||||
-rw-r--r-- | src/testdir/dumps/Test_conceal_cul_wcr_03.dump | 4 | ||||
-rw-r--r-- | src/testdir/dumps/Test_conceal_cul_wcr_rl_01.dump | 4 | ||||
-rw-r--r-- | src/testdir/dumps/Test_conceal_cul_wcr_rl_02.dump | 4 | ||||
-rw-r--r-- | src/testdir/dumps/Test_conceal_cul_wcr_rl_03.dump | 4 | ||||
-rw-r--r-- | src/testdir/test_conceal.vim | 51 |
7 files changed, 75 insertions, 0 deletions
diff --git a/src/testdir/dumps/Test_conceal_cul_wcr_01.dump b/src/testdir/dumps/Test_conceal_cul_wcr_01.dump new file mode 100644 index 0000000000..9cb27c8e96 --- /dev/null +++ b/src/testdir/dumps/Test_conceal_cul_wcr_01.dump @@ -0,0 +1,4 @@ +|o+8&#ffffff0|n|e| |o|n|e| |o|n|e| @1|o|n|e| |o|n|e| |o|n|e| |o|n|e| |o|n>e| @7 +@1|o|n|e| |o|n|e| |o|n|e| @27 +|~+0#4040ff13&| @38 +| +0#0000000&@21|1|,|4|0| @9|A|l@1| diff --git a/src/testdir/dumps/Test_conceal_cul_wcr_02.dump b/src/testdir/dumps/Test_conceal_cul_wcr_02.dump new file mode 100644 index 0000000000..668e1af84f --- /dev/null +++ b/src/testdir/dumps/Test_conceal_cul_wcr_02.dump @@ -0,0 +1,4 @@ +|o+8#ffffff16#e000002|n|e| |o|n|e| |o|n|e| @1|o|n|e| |o|n|e| |o|n|e| |o|n|e| |o|n>e| @7 +@1|o|n|e| |o|n|e| |o|n|e| @27 +|~+0#4040ff13&| @38 +|:+0#0000000#ffffff0|s|e|t| |w|i|n|c|o|l|o|r|=|E|r@1|o|r|M|s|g|1|,|4|0| @9|A|l@1| diff --git a/src/testdir/dumps/Test_conceal_cul_wcr_03.dump b/src/testdir/dumps/Test_conceal_cul_wcr_03.dump new file mode 100644 index 0000000000..965e9f577b --- /dev/null +++ b/src/testdir/dumps/Test_conceal_cul_wcr_03.dump @@ -0,0 +1,4 @@ +|o+0#ffffff16#e000002|n|e| |o|n|e| |o|n|e| @1|o|n|e| |o|n|e| |o|n|e| |o|n|e| |o|n>e| @7 +@1|o|n|e| |o|n|e| |o|n|e| @27 +|~+0#4040ff13&| @38 +|:+0#0000000#ffffff0|s|e|t| |n|o|c|u|r|s|o|r|l|i|n|e| @4|1|,|4|0| @9|A|l@1| diff --git a/src/testdir/dumps/Test_conceal_cul_wcr_rl_01.dump b/src/testdir/dumps/Test_conceal_cul_wcr_rl_01.dump new file mode 100644 index 0000000000..d1a31a6aab --- /dev/null +++ b/src/testdir/dumps/Test_conceal_cul_wcr_rl_01.dump @@ -0,0 +1,4 @@ +| +8&#ffffff0@7>e|n|o| |e|n|o| |e|n|o| |e|n|o| |e|n|o| @1|e|n|o| |e|n|o| |e|n|o +| @27|e|n|o| |e|n|o| |e|n|o| +| +0#4040ff13&@38|~ +| +0#0000000&@21|1|,|4|0| @9|A|l@1| diff --git a/src/testdir/dumps/Test_conceal_cul_wcr_rl_02.dump b/src/testdir/dumps/Test_conceal_cul_wcr_rl_02.dump new file mode 100644 index 0000000000..21809e9408 --- /dev/null +++ b/src/testdir/dumps/Test_conceal_cul_wcr_rl_02.dump @@ -0,0 +1,4 @@ +| +8#ffffff16#e000002@7>e|n|o| |e|n|o| |e|n|o| |e|n|o| |e|n|o| @1|e|n|o| |e|n|o| |e|n|o +| @27|e|n|o| |e|n|o| |e|n|o| +| +0#4040ff13&@38|~ +|:+0#0000000#ffffff0|s|e|t| |w|i|n|c|o|l|o|r|=|E|r@1|o|r|M|s|g|1|,|4|0| @9|A|l@1| diff --git a/src/testdir/dumps/Test_conceal_cul_wcr_rl_03.dump b/src/testdir/dumps/Test_conceal_cul_wcr_rl_03.dump new file mode 100644 index 0000000000..0eeb739f3b --- /dev/null +++ b/src/testdir/dumps/Test_conceal_cul_wcr_rl_03.dump @@ -0,0 +1,4 @@ +| +0#ffffff16#e000002@7>e|n|o| |e|n|o| |e|n|o| |e|n|o| |e|n|o| @1|e|n|o| |e|n|o| |e|n|o +| @27|e|n|o| |e|n|o| |e|n|o| +| +0#4040ff13&@38|~ +|:+0#0000000#ffffff0|s|e|t| |n|o|c|u|r|s|o|r|l|i|n|e| @4|1|,|4|0| @9|A|l@1| diff --git a/src/testdir/test_conceal.vim b/src/testdir/test_conceal.vim index e9779213fd..16953fc32c 100644 --- a/src/testdir/test_conceal.vim +++ b/src/testdir/test_conceal.vim @@ -171,6 +171,57 @@ func Test_conceal_with_cursorcolumn() call StopVimInTerminal(buf) endfunc +" Check that 'cursorline' and 'wincolor' apply to the whole line in presence +" of wrapped lines containing concealed text. +func Test_conceal_wrapped_cursorline_wincolor() + CheckScreendump + + let code =<< trim [CODE] + call setline(1, 'one one one |hidden| one one one one one one one one') + syntax match test /|hidden|/ conceal + set conceallevel=2 concealcursor=n cursorline + normal! g$ + [CODE] + + call writefile(code, 'XTest_conceal_cul_wcr', 'D') + let buf = RunVimInTerminal('-S XTest_conceal_cul_wcr', {'rows': 4, 'cols': 40}) + call VerifyScreenDump(buf, 'Test_conceal_cul_wcr_01', {}) + + call term_sendkeys(buf, ":set wincolor=ErrorMsg\n") + call VerifyScreenDump(buf, 'Test_conceal_cul_wcr_02', {}) + + call term_sendkeys(buf, ":set nocursorline\n") + call VerifyScreenDump(buf, 'Test_conceal_cul_wcr_03', {}) + + " clean up + call StopVimInTerminal(buf) +endfunc + +" Same as Test_conceal_wrapped_cursorline_wincolor(), but with 'rightleft'. +func Test_conceal_wrapped_cursorline_wincolor_rightleft() + CheckScreendump + + let code =<< trim [CODE] + call setline(1, 'one one one |hidden| one one one one one one one one') + syntax match test /|hidden|/ conceal + set conceallevel=2 concealcursor=n cursorline rightleft + normal! g$ + [CODE] + + call writefile(code, 'XTest_conceal_cul_wcr_rl', 'D') + let buf = RunVimInTerminal('-S XTest_conceal_cul_wcr_rl', {'rows': 4, 'cols': 40}) + call VerifyScreenDump(buf, 'Test_conceal_cul_wcr_rl_01', {}) + + call term_sendkeys(buf, ":set wincolor=ErrorMsg\n") + call VerifyScreenDump(buf, 'Test_conceal_cul_wcr_rl_02', {}) + + call term_sendkeys(buf, ":set nocursorline\n") + call VerifyScreenDump(buf, 'Test_conceal_cul_wcr_rl_03', {}) + + " clean up + call StopVimInTerminal(buf) +endfunc + func Test_conceal_resize_term() CheckScreendump |