vim-patch:8.2.0766: display error when using 'number' and 'breakindent'

Problem:    Display error when using 'number' and 'breakindent'.
Solution:   Adjust extra spaces in the first row. (Ken Takata, closes vim/vim#6089,
            closes vim/vim#5986)
e882f7a73c
This commit is contained in:
Jan Edmund Lazo 2020-05-16 10:02:38 -04:00
parent 04a0486c66
commit 63966a9ec2
No known key found for this signature in database
GPG Key ID: 64915E6E9F735B15
2 changed files with 55 additions and 0 deletions

View File

@ -2994,6 +2994,12 @@ win_line (
c_final = NUL;
n_extra =
get_breakindent_win(wp, ml_get_buf(wp->w_buffer, lnum, false));
if (row == startrow) {
n_extra -= win_col_off2(wp);
if (n_extra < 0) {
n_extra = 0;
}
}
if (wp->w_skipcol > 0 && wp->w_p_wrap && wp->w_briopt_sbr) {
need_showbreak = false;
}

View File

@ -373,3 +373,52 @@ func Test_breakindent19_sbr_nextpage()
call s:compare_lines(expect, lines)
call s:close_windows('set breakindent& briopt& sbr&')
endfunc
func Test_breakindent20_cpo_n_nextpage()
let s:input = ""
call s:test_windows('setl breakindent briopt=min:14 cpo+=n number')
call setline(1, repeat('a', 200))
norm! 1gg
redraw!
let lines = s:screen_lines(1, 20)
let expect = [
\ " 1 aaaaaaaaaaaaaaaa",
\ " aaaaaaaaaaaaaaaa",
\ " aaaaaaaaaaaaaaaa",
\ ]
call s:compare_lines(expect, lines)
" Scroll down one screen line
setl scrolloff=5
norm! 5gj
redraw!
let lines = s:screen_lines(1, 20)
let expect = [
\ "--1 aaaaaaaaaaaaaaaa",
\ " aaaaaaaaaaaaaaaa",
\ " aaaaaaaaaaaaaaaa",
\ ]
call s:compare_lines(expect, lines)
setl briopt+=shift:2
norm! 1gg
let lines = s:screen_lines(1, 20)
let expect = [
\ " 1 aaaaaaaaaaaaaaaa",
\ " aaaaaaaaaaaaaa",
\ " aaaaaaaaaaaaaa",
\ ]
call s:compare_lines(expect, lines)
" Scroll down one screen line
norm! 5gj
let lines = s:screen_lines(1, 20)
let expect = [
\ "--1 aaaaaaaaaaaaaa",
\ " aaaaaaaaaaaaaa",
\ " aaaaaaaaaaaaaa",
\ ]
call s:compare_lines(expect, lines)
call s:close_windows('set breakindent& briopt& cpo& number&')
endfunc
" vim: shiftwidth=2 sts=2 expandtab