aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIbby <33922797+SleepySwords@users.noreply.github.com>2023-04-03 23:12:56 +1000
committerbfredl <bjorn.linse@gmail.com>2023-05-22 13:49:42 +0200
commit332b70d2ed310084fe382affddbef3126c12751c (patch)
tree17cb673da7e9842a9232b4002fac5a2110bc9924
parentecf225df574a48a4bbddf4978972b2b97184e92c (diff)
downloadrneovim-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.c2
-rw-r--r--test/functional/ui/decorations_spec.lua27
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()