mirror of
https://github.com/neovim/neovim.git
synced 2024-12-23 20:55:18 -07:00
fix(signs): priority of extmark signs (#19718) Co-authored-by: Lewis Russell <lewis6991@gmail.com>
This commit is contained in:
parent
4cd0ee49af
commit
44205fe516
@ -2582,8 +2582,8 @@ nvim_buf_set_extmark({buffer}, {ns_id}, {line}, {col}, {*opts})
|
|||||||
inserted (true for right, false for left).
|
inserted (true for right, false for left).
|
||||||
Defaults to false.
|
Defaults to false.
|
||||||
• priority: a priority value for the highlight
|
• priority: a priority value for the highlight
|
||||||
group. For example treesitter highlighting
|
group or sign attribute. For example
|
||||||
uses a value of 100.
|
treesitter highlighting uses a value of 100.
|
||||||
• strict: boolean that indicates extmark should
|
• strict: boolean that indicates extmark should
|
||||||
not be placed if the line or column value is
|
not be placed if the line or column value is
|
||||||
past the end of the buffer or end of the line
|
past the end of the buffer or end of the line
|
||||||
|
@ -441,8 +441,9 @@ Array nvim_buf_get_extmarks(Buffer buffer, Integer ns_id, Object start, Object e
|
|||||||
/// the extmark end position (if it exists) will be shifted
|
/// the extmark end position (if it exists) will be shifted
|
||||||
/// in when new text is inserted (true for right, false
|
/// in when new text is inserted (true for right, false
|
||||||
/// for left). Defaults to false.
|
/// for left). Defaults to false.
|
||||||
/// - priority: a priority value for the highlight group. For
|
/// - priority: a priority value for the highlight group or sign
|
||||||
/// example treesitter highlighting uses a value of 100.
|
/// attribute. For example treesitter highlighting uses a
|
||||||
|
/// value of 100.
|
||||||
/// - strict: boolean that indicates extmark should not be placed
|
/// - strict: boolean that indicates extmark should not be placed
|
||||||
/// if the line or column value is past the end of the
|
/// if the line or column value is past the end of the
|
||||||
/// buffer or end of the line respectively. Defaults to true.
|
/// buffer or end of the line respectively. Defaults to true.
|
||||||
|
@ -394,7 +394,7 @@ void decor_redraw_signs(buf_T *buf, int row, int *num_signs, sign_attrs_T sattrs
|
|||||||
|
|
||||||
int j;
|
int j;
|
||||||
for (j = (*num_signs); j > 0; j--) {
|
for (j = (*num_signs); j > 0; j--) {
|
||||||
if (sattrs[j].sat_prio <= decor->priority) {
|
if (sattrs[j - 1].sat_prio >= decor->priority) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
sattrs[j] = sattrs[j-1];
|
sattrs[j] = sattrs[j-1];
|
||||||
|
@ -1636,7 +1636,7 @@ l5
|
|||||||
|
|
||||||
screen:expect{grid=[[
|
screen:expect{grid=[[
|
||||||
S4S1^l1 |
|
S4S1^l1 |
|
||||||
S2x l2 |
|
x S2l2 |
|
||||||
S5{1: }l3 |
|
S5{1: }l3 |
|
||||||
{1: }l4 |
|
{1: }l4 |
|
||||||
{1: }l5 |
|
{1: }l5 |
|
||||||
@ -1734,6 +1734,34 @@ l5
|
|||||||
]]}
|
]]}
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
it('works with priority #19716', function()
|
||||||
|
screen:try_resize(20, 3)
|
||||||
|
insert(example_text)
|
||||||
|
feed 'gg'
|
||||||
|
|
||||||
|
helpers.command('sign define Oldsign text=O3')
|
||||||
|
helpers.command([[exe 'sign place 42 line=1 name=Oldsign priority=10 buffer=' . bufnr('')]])
|
||||||
|
|
||||||
|
meths.buf_set_extmark(0, ns, 0, -1, {sign_text='S4', priority=100})
|
||||||
|
meths.buf_set_extmark(0, ns, 0, -1, {sign_text='S2', priority=5})
|
||||||
|
meths.buf_set_extmark(0, ns, 0, -1, {sign_text='S5', priority=200})
|
||||||
|
meths.buf_set_extmark(0, ns, 0, -1, {sign_text='S1', priority=1})
|
||||||
|
|
||||||
|
screen:expect{grid=[[
|
||||||
|
S1S2O3S4S5^l1 |
|
||||||
|
{1: }l2 |
|
||||||
|
|
|
||||||
|
]]}
|
||||||
|
|
||||||
|
-- Check truncation works too
|
||||||
|
meths.win_set_option(0, 'signcolumn', 'auto')
|
||||||
|
|
||||||
|
screen:expect{grid=[[
|
||||||
|
S5^l1 |
|
||||||
|
{1: }l2 |
|
||||||
|
|
|
||||||
|
]]}
|
||||||
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
describe('decorations: virt_text', function()
|
describe('decorations: virt_text', function()
|
||||||
|
Loading…
Reference in New Issue
Block a user