mirror of
https://github.com/neovim/neovim.git
synced 2024-12-23 20:55:18 -07:00
fix(marktree): some marks counted twice when checking for overlap
fixes #27046
This commit is contained in:
parent
e2e63bd045
commit
b97d5038f1
@ -1831,7 +1831,7 @@ bool marktree_itr_step_overlap(MarkTree *b, MarkTreeIter *itr, MTPair *pair)
|
||||
}
|
||||
unrelative(itr->pos, &k.pos);
|
||||
MTKey start = marktree_lookup(b, id, NULL);
|
||||
if (pos_less(itr->intersect_pos, start.pos)) {
|
||||
if (pos_leq(itr->intersect_pos, start.pos)) {
|
||||
continue;
|
||||
}
|
||||
*pair = mtpair_from(start, k);
|
||||
|
@ -5387,6 +5387,30 @@ l5
|
||||
|
|
||||
]]}
|
||||
end)
|
||||
|
||||
it('correct number of signs after deleting text (#27046)', function()
|
||||
command('call setline(1, ["foo"]->repeat(31))')
|
||||
api.nvim_buf_set_extmark(0, ns, 0, 0, {end_row = 0, sign_text = 'S1'})
|
||||
api.nvim_buf_set_extmark(0, ns, 0, 0, {end_row = 0, end_col = 3, hl_group = 'Error'})
|
||||
api.nvim_buf_set_extmark(0, ns, 9, 0, {end_row = 9, sign_text = 'S2'})
|
||||
api.nvim_buf_set_extmark(0, ns, 9, 0, {end_row = 9, end_col = 3, hl_group = 'Error'})
|
||||
api.nvim_buf_set_extmark(0, ns, 19, 0, {end_row = 19, sign_text = 'S3'})
|
||||
api.nvim_buf_set_extmark(0, ns, 19, 0, {end_row = 19, end_col = 3, hl_group = 'Error'})
|
||||
api.nvim_buf_set_extmark(0, ns, 29, 0, {end_row = 29, sign_text = 'S4'})
|
||||
api.nvim_buf_set_extmark(0, ns, 29, 0, {end_row = 29, end_col = 3, hl_group = 'Error'})
|
||||
api.nvim_buf_set_extmark(0, ns, 30, 0, {end_row = 30, sign_text = 'S5'})
|
||||
api.nvim_buf_set_extmark(0, ns, 30, 0, {end_row = 30, end_col = 3, hl_group = 'Error'})
|
||||
command('0d29')
|
||||
|
||||
screen:expect{grid=[[
|
||||
S1S2S3S4{4:^foo} |
|
||||
S5{1: }{4:foo} |
|
||||
{2:~ }|*7
|
||||
29 fewer lines |
|
||||
]]}
|
||||
|
||||
api.nvim_buf_clear_namespace(0, ns, 0, -1)
|
||||
end)
|
||||
end)
|
||||
|
||||
describe('decorations: virt_text', function()
|
||||
|
Loading…
Reference in New Issue
Block a user