0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 9.0.0662: concealed characters do not work correctly

Problem:    Concealed characters do not work correctly.
Solution:   Subtract boguscols instead of adding them. (closes #11273)
This commit is contained in:
Bram Moolenaar 2022-10-04 22:40:56 +01:00
parent 18b3500b8c
commit 7500866182
4 changed files with 38 additions and 2 deletions

View File

@ -3689,9 +3689,9 @@ win_line(
)
{
#ifdef FEAT_CONCEAL
wlv.col += wlv.boguscols;
wlv_screen_line(wp, &wlv, FALSE);
wlv.col -= wlv.boguscols;
wlv_screen_line(wp, &wlv, FALSE);
wlv.col += wlv.boguscols;
wlv.boguscols = 0;
#else
wlv_screen_line(wp, &wlv, FALSE);

View File

@ -0,0 +1,8 @@
>x+0&#ffffff0@74
| @74
|a@63| @10
|++0#4040ff13&| |b+0#0000000&@66| @5
|++0#4040ff13&| |c+0#0000000&@5| @66
|~+0#4040ff13&| @73
|~| @73
| +0#0000000&@56|1|,|1| @10|A|l@1|

View File

@ -159,6 +159,32 @@ func Test_conceal_resize_term()
call StopVimInTerminal(buf)
endfunc
func Test_conceal_linebreak()
CheckScreendump
let code =<< trim [CODE]
vim9script
&wrap = true
&conceallevel = 2
&concealcursor = 'nc'
&linebreak = true
&showbreak = '+ '
var line: string = 'a`a`a`a`'
.. 'a'->repeat(&columns - 15)
.. ' b`b`'
.. 'b'->repeat(&columns - 10)
.. ' cccccc'
['x'->repeat(&columns), '', line]->setline(1)
syntax region CodeSpan matchgroup=Delimiter start=/\z(`\+\)/ end=/\z1/ concealends
[CODE]
call writefile(code, 'XTest_conceal_linebreak', 'D')
let buf = RunVimInTerminal('-S XTest_conceal_linebreak', {'rows': 8})
call VerifyScreenDump(buf, 'Test_conceal_linebreak_1', {})
" clean up
call StopVimInTerminal(buf)
endfunc
" Tests for correct display (cursor column position) with +conceal and
" tabulators. Need to run this test in a separate Vim instance. Otherwise the
" screen is not updated (lazy redraw) and the cursor position is wrong.

View File

@ -699,6 +699,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
662,
/**/
661,
/**/