mirror of
https://github.com/neovim/neovim.git
synced 2024-12-19 18:55:14 -07:00
fix(extmarks): redraw line on adding/removing conceal (#27463)
This commit is contained in:
parent
b2f7a3aaad
commit
a376d979bd
@ -121,7 +121,8 @@ void decor_redraw(buf_T *buf, int row1, int row2, int col1, DecorInline decor)
|
|||||||
|
|
||||||
void decor_redraw_sh(buf_T *buf, int row1, int row2, DecorSignHighlight sh)
|
void decor_redraw_sh(buf_T *buf, int row1, int row2, DecorSignHighlight sh)
|
||||||
{
|
{
|
||||||
if (sh.hl_id || (sh.url != NULL) || (sh.flags & (kSHIsSign|kSHSpellOn|kSHSpellOff))) {
|
if (sh.hl_id || (sh.url != NULL)
|
||||||
|
|| (sh.flags & (kSHIsSign | kSHSpellOn | kSHSpellOff | kSHConceal))) {
|
||||||
if (row2 >= row1) {
|
if (row2 >= row1) {
|
||||||
redraw_buf_range_later(buf, row1 + 1, row2 + 1);
|
redraw_buf_range_later(buf, row1 + 1, row2 + 1);
|
||||||
}
|
}
|
||||||
|
@ -1742,6 +1742,35 @@ describe('extmark decorations', function()
|
|||||||
]]}
|
]]}
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
it('redraws properly when adding/removing conceal on non-current line', function()
|
||||||
|
screen:try_resize(50, 5)
|
||||||
|
api.nvim_buf_set_lines(0, 0, -1, true, {'abcd', 'efgh','ijkl', 'mnop'})
|
||||||
|
command('setlocal conceallevel=2')
|
||||||
|
screen:expect{grid=[[
|
||||||
|
^abcd |
|
||||||
|
efgh |
|
||||||
|
ijkl |
|
||||||
|
mnop |
|
||||||
|
|
|
||||||
|
]]}
|
||||||
|
api.nvim_buf_set_extmark(0, ns, 2, 1, {end_col=3, conceal=''})
|
||||||
|
screen:expect{grid=[[
|
||||||
|
^abcd |
|
||||||
|
efgh |
|
||||||
|
il |
|
||||||
|
mnop |
|
||||||
|
|
|
||||||
|
]]}
|
||||||
|
api.nvim_buf_clear_namespace(0, ns, 0, -1)
|
||||||
|
screen:expect{grid=[[
|
||||||
|
^abcd |
|
||||||
|
efgh |
|
||||||
|
ijkl |
|
||||||
|
mnop |
|
||||||
|
|
|
||||||
|
]]}
|
||||||
|
end)
|
||||||
|
|
||||||
it('avoids redraw issue #20651', function()
|
it('avoids redraw issue #20651', function()
|
||||||
exec_lua[[
|
exec_lua[[
|
||||||
vim.cmd.normal'10oXXX'
|
vim.cmd.normal'10oXXX'
|
||||||
|
Loading…
Reference in New Issue
Block a user