Merge pull request #20645 from lewis6991/fix/decor_redraw_same_id

fix(decoration): redraw correctly when re-using ids
This commit is contained in:
Lewis Russell 2022-10-14 20:46:26 +01:00 committed by GitHub
commit cb7da02701
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 36 additions and 0 deletions

View File

@ -112,6 +112,7 @@ void extmark_set(buf_T *buf, uint32_t ns_id, uint32_t *idp, int row, colnr_T col
marktree_revise(buf->b_marktree, itr, decor_level, old_mark);
goto revised;
}
decor_remove(buf, old_mark.pos.row, old_mark.pos.row, old_mark.decor_full);
marktree_del_itr(buf->b_marktree, itr, false);
}
} else {

View File

@ -2085,4 +2085,39 @@ describe('decorations: virt_text', function()
]]}
end)
it('redraws correctly when re-using extmark ids', function()
command 'normal 5ohello'
screen:expect{grid=[[
|
hello |
hello |
hello |
hello |
hell^o |
{3:~ }|
{3:~ }|
{3:~ }|
|
]]}
local ns = meths.create_namespace('ns')
for row = 1, 5 do
meths.buf_set_extmark(0, ns, row, 0, { id = 1, virt_text = {{'world', 'Normal'}} })
end
screen:expect{grid=[[
|
hello |
hello |
hello |
hello |
hell^o world |
{3:~ }|
{3:~ }|
{3:~ }|
|
]]}
end)
end)