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;
|
c_final = NUL;
|
||||||
n_extra = get_breakindent_win(wp,
|
n_extra = get_breakindent_win(wp,
|
||||||
ml_get_buf(wp->w_buffer, lnum, FALSE));
|
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)
|
if (wp->w_skipcol > 0 && wp->w_p_wrap && wp->w_briopt_sbr)
|
||||||
need_showbreak = FALSE;
|
need_showbreak = FALSE;
|
||||||
// Correct end of highlighted area for 'breakindent',
|
// Correct end of highlighted area for 'breakindent',
|
||||||
|
@@ -696,4 +696,51 @@ func Test_breakindent19_sbr_nextpage()
|
|||||||
call s:close_windows('set breakindent& briopt& sbr&')
|
call s:close_windows('set breakindent& briopt& sbr&')
|
||||||
endfunc
|
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
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@@ -746,6 +746,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
766,
|
||||||
/**/
|
/**/
|
||||||
765,
|
765,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user