vim-patch:9.0.0143: cursor positioned after virtual text in empty line

Problem:    Cursor positioned after virtual text in empty line.
Solution:   Keep cursor in the first column. (closes vim/vim#10786)

afd2aa79ed
This commit is contained in:
Ibby 2023-03-26 00:10:28 +11:00 committed by bfredl
parent 0c7fa3bdcc
commit 8eaf3c4f8c
2 changed files with 23 additions and 1 deletions

View File

@ -390,7 +390,7 @@ int win_lbr_chartabsize(chartabsize_T *cts, int *headp)
// First get normal size, without 'linebreak' or virtual text
int size = win_chartabsize(wp, s, vcol);
if (cts->cts_has_virt_text) {
if (cts->cts_has_virt_text && *line != NUL) {
int col = (int)(s - line);
while (true) {
mtkey_t mark = marktree_itr_current(cts->cts_iter);

View File

@ -1368,6 +1368,28 @@ end]]
{24:-- INSERT --} |
]]}
end)
it('has correct cursor position with virtual text on an empty line', function()
meths.buf_set_extmark(0, ns, 0, 0,
{ virt_text = { { 'virtual text', 'Special' } }, virt_text_pos = 'inline' })
screen:expect { grid = [[
{28:^virtual text} |
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
{1:~ }|
|
]]}
end)
end)
describe('decorations: virtual lines', function()