fix(extmarks): fix virt_text_hide with 'nowrap' and multibyte (#23757)

This commit is contained in:
zeertzjq 2023-05-26 10:41:19 +08:00 committed by GitHub
parent f733595e79
commit a6dd67f5b6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 1 deletions

View File

@ -1729,7 +1729,7 @@ int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, int mod_top, bo
wlv.draw_state = WL_LINE; wlv.draw_state = WL_LINE;
if (has_decor && wlv.row == startrow + wlv.filler_lines) { if (has_decor && wlv.row == startrow + wlv.filler_lines) {
// hide virt_text on text hidden by 'nowrap' // hide virt_text on text hidden by 'nowrap'
decor_redraw_col(wp, wlv.vcol, wlv.off, true, &decor_state); decor_redraw_col(wp, (colnr_T)(ptr - line), wlv.off, true, &decor_state);
} }
win_line_continue(&wlv); // use wlv.saved_ values win_line_continue(&wlv); // use wlv.saved_ values
} }

View File

@ -825,6 +825,26 @@ describe('extmark decorations', function()
end -- ?古古古古?古古 | end -- ?古古古古?古古 |
| |
]]} ]]}
screen:try_resize(50, 2)
command('set nowrap')
meths.buf_set_lines(0, 12, 12, true, {'-- ' .. (''):rep(57)})
feed('G')
meths.buf_set_extmark(0, ns, 12, 123, { virt_text={{'!!!!!', 'ErrorMsg'}}, virt_text_pos='overlay', virt_text_hide=true})
screen:expect{grid=[[
^-- {4:!!!!!}|
|
]]}
feed('40zl')
screen:expect{grid=[[
^{4:!!!!!} |
|
]]}
feed('10zl')
screen:expect{grid=[[
^ |
|
]]}
end) end)
it('can have virtual text of overlay position and styling', function() it('can have virtual text of overlay position and styling', function()