mirror of
https://github.com/neovim/neovim.git
synced 2025-10-26 12:27:24 +00:00
vim-patch:9.1.0079: LineNrAbove/Below highlighting wrong on wrapped lines (#27363)
Problem: LineNrAbove and LineNrBelow background wrong on wrapped lines.
Solution: Update number column also for wrapped part of a line.
(zeertzjq)
closes: vim/vim#13974
ebfd856cfd
Cherry-pick test_number.vim changes from patch 9.0.0626.
This commit is contained in:
@@ -1708,68 +1708,206 @@ end)
|
||||
describe("'number' and 'relativenumber' highlight", function()
|
||||
before_each(clear)
|
||||
|
||||
-- oldtest: Test_relativenumber_colors()
|
||||
it('LineNr, LineNrAbove and LineNrBelow', function()
|
||||
local screen = Screen.new(20, 10)
|
||||
local screen = Screen.new(50, 10)
|
||||
screen:set_default_attr_ids({
|
||||
[1] = { foreground = Screen.colors.Red },
|
||||
[2] = { foreground = Screen.colors.Blue },
|
||||
[3] = { foreground = Screen.colors.Green },
|
||||
})
|
||||
screen:attach()
|
||||
command('set number relativenumber')
|
||||
command('call setline(1, range(50))')
|
||||
command('highlight LineNr guifg=Red')
|
||||
feed('4j')
|
||||
screen:expect([[
|
||||
{1: 4 }0 |
|
||||
{1: 3 }1 |
|
||||
{1: 2 }2 |
|
||||
{1: 1 }3 |
|
||||
{1:5 }^4 |
|
||||
{1: 1 }5 |
|
||||
{1: 2 }6 |
|
||||
{1: 3 }7 |
|
||||
{1: 4 }8 |
|
||||
|
|
||||
exec([[
|
||||
call setline(1, range(200))
|
||||
111
|
||||
set number relativenumber
|
||||
hi LineNr guifg=red
|
||||
]])
|
||||
command('highlight LineNrAbove guifg=Blue')
|
||||
screen:expect([[
|
||||
{2: 4 }0 |
|
||||
{2: 3 }1 |
|
||||
{2: 2 }2 |
|
||||
{2: 1 }3 |
|
||||
{1:5 }^4 |
|
||||
{1: 1 }5 |
|
||||
{1: 2 }6 |
|
||||
{1: 3 }7 |
|
||||
{1: 4 }8 |
|
||||
|
|
||||
{1: 4 }106 |
|
||||
{1: 3 }107 |
|
||||
{1: 2 }108 |
|
||||
{1: 1 }109 |
|
||||
{1:111 }^110 |
|
||||
{1: 1 }111 |
|
||||
{1: 2 }112 |
|
||||
{1: 3 }113 |
|
||||
{1: 4 }114 |
|
||||
|
|
||||
]])
|
||||
command('highlight LineNrBelow guifg=Green')
|
||||
command('hi LineNrAbove guifg=blue')
|
||||
screen:expect([[
|
||||
{2: 4 }0 |
|
||||
{2: 3 }1 |
|
||||
{2: 2 }2 |
|
||||
{2: 1 }3 |
|
||||
{1:5 }^4 |
|
||||
{3: 1 }5 |
|
||||
{3: 2 }6 |
|
||||
{3: 3 }7 |
|
||||
{3: 4 }8 |
|
||||
|
|
||||
{2: 4 }106 |
|
||||
{2: 3 }107 |
|
||||
{2: 2 }108 |
|
||||
{2: 1 }109 |
|
||||
{1:111 }^110 |
|
||||
{1: 1 }111 |
|
||||
{1: 2 }112 |
|
||||
{1: 3 }113 |
|
||||
{1: 4 }114 |
|
||||
|
|
||||
]])
|
||||
feed('3j')
|
||||
command('hi LineNrBelow guifg=green')
|
||||
screen:expect([[
|
||||
{2: 7 }0 |
|
||||
{2: 6 }1 |
|
||||
{2: 5 }2 |
|
||||
{2: 4 }3 |
|
||||
{2: 3 }4 |
|
||||
{2: 2 }5 |
|
||||
{2: 1 }6 |
|
||||
{1:8 }^7 |
|
||||
{3: 1 }8 |
|
||||
|
|
||||
{2: 4 }106 |
|
||||
{2: 3 }107 |
|
||||
{2: 2 }108 |
|
||||
{2: 1 }109 |
|
||||
{1:111 }^110 |
|
||||
{3: 1 }111 |
|
||||
{3: 2 }112 |
|
||||
{3: 3 }113 |
|
||||
{3: 4 }114 |
|
||||
|
|
||||
]])
|
||||
command('hi clear LineNrAbove')
|
||||
screen:expect([[
|
||||
{1: 4 }106 |
|
||||
{1: 3 }107 |
|
||||
{1: 2 }108 |
|
||||
{1: 1 }109 |
|
||||
{1:111 }^110 |
|
||||
{3: 1 }111 |
|
||||
{3: 2 }112 |
|
||||
{3: 3 }113 |
|
||||
{3: 4 }114 |
|
||||
|
|
||||
]])
|
||||
end)
|
||||
|
||||
-- oldtest: Test_relativenumber_colors_wrapped()
|
||||
it('LineNr, LineNrAbove and LineNrBelow with wrapped lines', function()
|
||||
local screen = Screen.new(50, 20)
|
||||
screen:set_default_attr_ids({
|
||||
[1] = { background = Screen.colors.Red, foreground = Screen.colors.Black },
|
||||
[2] = { background = Screen.colors.Blue, foreground = Screen.colors.Black },
|
||||
[3] = { background = Screen.colors.Green, foreground = Screen.colors.Black },
|
||||
[4] = { bold = true, foreground = Screen.colors.Blue },
|
||||
})
|
||||
screen:attach()
|
||||
exec([[
|
||||
set display=lastline scrolloff=0
|
||||
call setline(1, range(200)->map('v:val->string()->repeat(40)'))
|
||||
111
|
||||
set number relativenumber
|
||||
hi LineNr guibg=red guifg=black
|
||||
hi LineNrAbove guibg=blue guifg=black
|
||||
hi LineNrBelow guibg=green guifg=black
|
||||
]])
|
||||
screen:expect([[
|
||||
{2: 2 }1081081081081081081081081081081081081081081081|
|
||||
{2: }0810810810810810810810810810810810810810810810|
|
||||
{2: }8108108108108108108108108108 |
|
||||
{2: 1 }1091091091091091091091091091091091091091091091|
|
||||
{2: }0910910910910910910910910910910910910910910910|
|
||||
{2: }9109109109109109109109109109 |
|
||||
{1:111 }^1101101101101101101101101101101101101101101101|
|
||||
{1: }1011011011011011011011011011011011011011011011|
|
||||
{1: }0110110110110110110110110110 |
|
||||
{3: 1 }1111111111111111111111111111111111111111111111|
|
||||
{3: }1111111111111111111111111111111111111111111111|
|
||||
{3: }1111111111111111111111111111 |
|
||||
{3: 2 }1121121121121121121121121121121121121121121121|
|
||||
{3: }1211211211211211211211211211211211211211211211|
|
||||
{3: }2112112112112112112112112112 |
|
||||
{3: 3 }1131131131131131131131131131131131131131131131|
|
||||
{3: }1311311311311311311311311311311311311311311311|
|
||||
{3: }3113113113113113113113113113 |
|
||||
{3: 4 }1141141141141141141141141141141141141141141{4:@@@}|
|
||||
|
|
||||
]])
|
||||
feed('k')
|
||||
screen:expect([[
|
||||
{2: 1 }1081081081081081081081081081081081081081081081|
|
||||
{2: }0810810810810810810810810810810810810810810810|
|
||||
{2: }8108108108108108108108108108 |
|
||||
{1:110 }^1091091091091091091091091091091091091091091091|
|
||||
{1: }0910910910910910910910910910910910910910910910|
|
||||
{1: }9109109109109109109109109109 |
|
||||
{3: 1 }1101101101101101101101101101101101101101101101|
|
||||
{3: }1011011011011011011011011011011011011011011011|
|
||||
{3: }0110110110110110110110110110 |
|
||||
{3: 2 }1111111111111111111111111111111111111111111111|
|
||||
{3: }1111111111111111111111111111111111111111111111|
|
||||
{3: }1111111111111111111111111111 |
|
||||
{3: 3 }1121121121121121121121121121121121121121121121|
|
||||
{3: }1211211211211211211211211211211211211211211211|
|
||||
{3: }2112112112112112112112112112 |
|
||||
{3: 4 }1131131131131131131131131131131131131131131131|
|
||||
{3: }1311311311311311311311311311311311311311311311|
|
||||
{3: }3113113113113113113113113113 |
|
||||
{3: 5 }1141141141141141141141141141141141141141141{4:@@@}|
|
||||
|
|
||||
]])
|
||||
feed('2j')
|
||||
screen:expect([[
|
||||
{2: 3 }1081081081081081081081081081081081081081081081|
|
||||
{2: }0810810810810810810810810810810810810810810810|
|
||||
{2: }8108108108108108108108108108 |
|
||||
{2: 2 }1091091091091091091091091091091091091091091091|
|
||||
{2: }0910910910910910910910910910910910910910910910|
|
||||
{2: }9109109109109109109109109109 |
|
||||
{2: 1 }1101101101101101101101101101101101101101101101|
|
||||
{2: }1011011011011011011011011011011011011011011011|
|
||||
{2: }0110110110110110110110110110 |
|
||||
{1:112 }^1111111111111111111111111111111111111111111111|
|
||||
{1: }1111111111111111111111111111111111111111111111|
|
||||
{1: }1111111111111111111111111111 |
|
||||
{3: 1 }1121121121121121121121121121121121121121121121|
|
||||
{3: }1211211211211211211211211211211211211211211211|
|
||||
{3: }2112112112112112112112112112 |
|
||||
{3: 2 }1131131131131131131131131131131131131131131131|
|
||||
{3: }1311311311311311311311311311311311311311311311|
|
||||
{3: }3113113113113113113113113113 |
|
||||
{3: 3 }1141141141141141141141141141141141141141141{4:@@@}|
|
||||
|
|
||||
]])
|
||||
feed('2j')
|
||||
screen:expect([[
|
||||
{2: 5 }1081081081081081081081081081081081081081081081|
|
||||
{2: }0810810810810810810810810810810810810810810810|
|
||||
{2: }8108108108108108108108108108 |
|
||||
{2: 4 }1091091091091091091091091091091091091091091091|
|
||||
{2: }0910910910910910910910910910910910910910910910|
|
||||
{2: }9109109109109109109109109109 |
|
||||
{2: 3 }1101101101101101101101101101101101101101101101|
|
||||
{2: }1011011011011011011011011011011011011011011011|
|
||||
{2: }0110110110110110110110110110 |
|
||||
{2: 2 }1111111111111111111111111111111111111111111111|
|
||||
{2: }1111111111111111111111111111111111111111111111|
|
||||
{2: }1111111111111111111111111111 |
|
||||
{2: 1 }1121121121121121121121121121121121121121121121|
|
||||
{2: }1211211211211211211211211211211211211211211211|
|
||||
{2: }2112112112112112112112112112 |
|
||||
{1:114 }^1131131131131131131131131131131131131131131131|
|
||||
{1: }1311311311311311311311311311311311311311311311|
|
||||
{1: }3113113113113113113113113113 |
|
||||
{3: 1 }1141141141141141141141141141141141141141141{4:@@@}|
|
||||
|
|
||||
]])
|
||||
feed('k')
|
||||
screen:expect([[
|
||||
{2: 4 }1081081081081081081081081081081081081081081081|
|
||||
{2: }0810810810810810810810810810810810810810810810|
|
||||
{2: }8108108108108108108108108108 |
|
||||
{2: 3 }1091091091091091091091091091091091091091091091|
|
||||
{2: }0910910910910910910910910910910910910910910910|
|
||||
{2: }9109109109109109109109109109 |
|
||||
{2: 2 }1101101101101101101101101101101101101101101101|
|
||||
{2: }1011011011011011011011011011011011011011011011|
|
||||
{2: }0110110110110110110110110110 |
|
||||
{2: 1 }1111111111111111111111111111111111111111111111|
|
||||
{2: }1111111111111111111111111111111111111111111111|
|
||||
{2: }1111111111111111111111111111 |
|
||||
{1:113 }^1121121121121121121121121121121121121121121121|
|
||||
{1: }1211211211211211211211211211211211211211211211|
|
||||
{1: }2112112112112112112112112112 |
|
||||
{3: 1 }1131131131131131131131131131131131131131131131|
|
||||
{3: }1311311311311311311311311311311311311311311311|
|
||||
{3: }3113113113113113113113113113 |
|
||||
{3: 2 }1141141141141141141141141141141141141141141{4:@@@}|
|
||||
|
|
||||
]])
|
||||
end)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user