diff options
author | Ibby <33922797+SleepySwords@users.noreply.github.com> | 2023-04-03 23:12:56 +1000 |
---|---|---|
committer | bfredl <bjorn.linse@gmail.com> | 2023-05-22 13:49:42 +0200 |
commit | 332b70d2ed310084fe382affddbef3126c12751c (patch) | |
tree | 17cb673da7e9842a9232b4002fac5a2110bc9924 | |
parent | ecf225df574a48a4bbddf4978972b2b97184e92c (diff) | |
download | rneovim-332b70d2ed310084fe382affddbef3126c12751c.tar.gz rneovim-332b70d2ed310084fe382affddbef3126c12751c.tar.bz2 rneovim-332b70d2ed310084fe382affddbef3126c12751c.zip |
fix(ui): fix incorrect highlighting when virtual text wraps with number
-rw-r--r-- | src/nvim/drawline.c | 2 | ||||
-rw-r--r-- | test/functional/ui/decorations_spec.lua | 27 |
2 files changed, 28 insertions, 1 deletions
diff --git a/src/nvim/drawline.c b/src/nvim/drawline.c index c063425f68..466fe8f8f1 100644 --- a/src/nvim/drawline.c +++ b/src/nvim/drawline.c @@ -1942,7 +1942,7 @@ int win_line(win_T *wp, linenr_T lnum, int startrow, int endrow, bool nochange, // Only restore search_attr and area_attr after "n_extra" in // the next screen line is also done. - if (wlv.n_extra <= 0) { + if (wlv.n_extra <= 0 && wlv.saved_n_extra <= 0) { if (search_attr == 0) { search_attr = saved_search_attr; } diff --git a/test/functional/ui/decorations_spec.lua b/test/functional/ui/decorations_spec.lua index 77748eecb3..2d0f3e7a17 100644 --- a/test/functional/ui/decorations_spec.lua +++ b/test/functional/ui/decorations_spec.lua @@ -1843,6 +1843,33 @@ bbbbbbb]]) | ]]} end) + + it('highlighting is correct when virtual text wraps with number', function() + insert([[ + test + test]]) + command('set number') + meths.buf_set_extmark(0, ns, 0, 1, + { virt_text = { { string.rep('X', 55), 'Special' } }, virt_text_pos = 'inline', right_gravity = false }) + feed('gg0') + screen:expect { grid = [[ + {2: 1 }^t{28:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}| + {2: }{28:XXXXXXXXXX}est | + {2: 2 }test | + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + | + ]]} + end) end) describe('decorations: virtual lines', function() |