mirror of
https://github.com/neovim/neovim.git
synced 2024-12-19 10:45:16 -07:00
fix(ui): fixes incorrect rendering when virtual text is not visable and nowrap
This commit is contained in:
parent
be273c3a23
commit
1936285d98
@ -1743,12 +1743,12 @@ int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, bool nochange,
|
||||
DecorState *state = &decor_state;
|
||||
for (size_t i = 0; i < kv_size(state->active); i++) {
|
||||
DecorRange *item = &kv_A(state->active, i);
|
||||
if (!(item->start_row == state->row
|
||||
&& kv_size(item->decor.virt_text)
|
||||
&& item->decor.virt_text_pos == kVTInline)) {
|
||||
if (item->start_row != state->row
|
||||
|| !kv_size(item->decor.virt_text)
|
||||
|| item->decor.virt_text_pos != kVTInline) {
|
||||
continue;
|
||||
}
|
||||
if (item->win_col >= -1 && item->start_col <= v) {
|
||||
if (item->win_col >= -1 && item->start_col == v) {
|
||||
virt_inline = item->decor.virt_text;
|
||||
virt_inline_i = 0;
|
||||
item->win_col = -2;
|
||||
|
@ -1741,6 +1741,33 @@ bbbbbbb]])
|
||||
{24:-- INSERT --} |
|
||||
]]}
|
||||
end)
|
||||
|
||||
it('no wrap is rendered correctly with multiple virtual text, where one is hidden', function()
|
||||
insert('abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz')
|
||||
command("set nowrap")
|
||||
meths.buf_set_extmark(0, ns, 0, 50,
|
||||
{ virt_text = { { 'virtual text', 'Special' } }, virt_text_pos = 'inline', right_gravity = false })
|
||||
meths.buf_set_extmark(0, ns, 0, 2,
|
||||
{ virt_text = { { 'virtual text', 'Special' } }, virt_text_pos = 'inline', right_gravity = false })
|
||||
feed('$')
|
||||
screen:expect { grid = [[
|
||||
opqrstuvwxyzabcdefghijklmnopqrstuvwx{28:virtual text}y^z|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
{1:~ }|
|
||||
|
|
||||
]]}
|
||||
end)
|
||||
end)
|
||||
|
||||
describe('decorations: virtual lines', function()
|
||||
|
Loading…
Reference in New Issue
Block a user