forked from aniani/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 #6089, closes #5986)
This commit is contained in:
@@ -1177,6 +1177,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;
|
||||
// Correct end of highlighted area for 'breakindent',
|
||||
|
@@ -696,4 +696,51 @@ func Test_breakindent19_sbr_nextpage()
|
||||
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
|
||||
|
@@ -746,6 +746,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
766,
|
||||
/**/
|
||||
765,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user