vim-patch:8.2.1004: line numbers below filler lines not always updated

Problem:    Line numbers below filler lines not always updated.
Solution:   Don't break out of the win_line() loop too early. (Christian
            Brabandt, closes vim/vim#6294, closes vim/vim#6138)
511feec6f0
This commit is contained in:
Jan Edmund Lazo
2020-07-17 21:20:56 -04:00
parent 1e6bf6f17a
commit ed41ac08cf
3 changed files with 112 additions and 4 deletions

View File

@@ -6,6 +6,7 @@ local clear = helpers.clear
local command = helpers.command
local insert = helpers.insert
local write_file = helpers.write_file
local source = helpers.source
describe('Diff mode screen', function()
local fname = 'Xtest-functional-diff-screen-1'
@@ -1031,3 +1032,79 @@ it('win_update redraws lines properly', function()
|
]]}
end)
it('diff updates line numbers below filler lines', function()
clear()
local screen = Screen.new(40, 14)
screen:attach()
screen:set_default_attr_ids({
[1] = {foreground = Screen.colors.DarkBlue, background = Screen.colors.WebGray},
[2] = {background = Screen.colors.LightCyan1, bold = true, foreground = Screen.colors.Blue1},
[3] = {reverse = true},
[4] = {background = Screen.colors.LightBlue},
[5] = {foreground = Screen.colors.DarkBlue, background = Screen.colors.LightGrey},
[6] = {bold = true, foreground = Screen.colors.Blue1},
[7] = {bold = true, reverse = true},
[8] = {bold = true, background = Screen.colors.Red},
[9] = {background = Screen.colors.LightMagenta},
[10] = {bold = true, foreground = Screen.colors.Brown},
[11] = {foreground = Screen.colors.Brown},
})
source([[
call setline(1, ['a', 'a', 'a', 'y', 'b', 'b', 'b', 'b', 'b'])
vnew
call setline(1, ['a', 'a', 'a', 'x', 'x', 'x', 'b', 'b', 'b', 'b', 'b'])
windo diffthis
setlocal number rnu foldcolumn=0
]])
screen:expect([[
{1: }a {3:│}{10:1 }^a |
{1: }a {3:│}{11: 1 }a |
{1: }a {3:│}{11: 2 }a |
{1: }{8:x}{9: }{3:│}{11: 3 }{8:y}{9: }|
{1: }{4:x }{3:│}{11: }{2:----------------}|
{1: }{4:x }{3:│}{11: }{2:----------------}|
{1: }b {3:│}{11: 4 }b |
{1: }b {3:│}{11: 5 }b |
{1: }b {3:│}{11: 6 }b |
{1: }b {3:│}{11: 7 }b |
{1: }b {3:│}{11: 8 }b |
{6:~ }{3:│}{6:~ }|
{3:[No Name] [+] }{7:[No Name] [+] }|
|
]])
feed('j')
screen:expect([[
{1: }a {3:│}{11: 1 }a |
{1: }a {3:│}{10:2 }^a |
{1: }a {3:│}{11: 1 }a |
{1: }{8:x}{9: }{3:│}{11: 2 }{8:y}{9: }|
{1: }{4:x }{3:│}{11: }{2:----------------}|
{1: }{4:x }{3:│}{11: }{2:----------------}|
{1: }b {3:│}{11: 3 }b |
{1: }b {3:│}{11: 4 }b |
{1: }b {3:│}{11: 5 }b |
{1: }b {3:│}{11: 6 }b |
{1: }b {3:│}{11: 7 }b |
{6:~ }{3:│}{6:~ }|
{3:[No Name] [+] }{7:[No Name] [+] }|
|
]])
feed('j')
screen:expect([[
{1: }a {3:│}{11: 2 }a |
{1: }a {3:│}{11: 1 }a |
{1: }a {3:│}{10:3 }^a |
{1: }{8:x}{9: }{3:│}{11: 1 }{8:y}{9: }|
{1: }{4:x }{3:│}{11: }{2:----------------}|
{1: }{4:x }{3:│}{11: }{2:----------------}|
{1: }b {3:│}{11: 2 }b |
{1: }b {3:│}{11: 3 }b |
{1: }b {3:│}{11: 4 }b |
{1: }b {3:│}{11: 5 }b |
{1: }b {3:│}{11: 6 }b |
{6:~ }{3:│}{6:~ }|
{3:[No Name] [+] }{7:[No Name] [+] }|
|
]])
end)