mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 9.0.2151: 'breakindent' is not drawn after diff filler lines
Problem: 'breakindent' is not drawn after diff filler lines. Solution: Correct check for whether 'breakindent' should be drawn. closes: #13624 Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
parent
2103a56eab
commit
588f20dece
@ -498,10 +498,11 @@ handle_breakindent(win_T *wp, winlinevars_T *wlv)
|
|||||||
{
|
{
|
||||||
wlv->draw_state = WL_BRI;
|
wlv->draw_state = WL_BRI;
|
||||||
// if wlv->need_showbreak is set, breakindent also applies
|
// if wlv->need_showbreak is set, breakindent also applies
|
||||||
if (wp->w_p_bri && (wlv->row != wlv->startrow || wlv->need_showbreak)
|
if (wp->w_p_bri && (wlv->row > wlv->startrow
|
||||||
# ifdef FEAT_DIFF
|
# ifdef FEAT_DIFF
|
||||||
&& wlv->filler_lines == 0
|
+ wlv->filler_lines
|
||||||
# endif
|
# endif
|
||||||
|
|| wlv->need_showbreak)
|
||||||
# ifdef FEAT_PROP_POPUP
|
# ifdef FEAT_PROP_POPUP
|
||||||
&& !wlv->dont_use_showbreak
|
&& !wlv->dont_use_showbreak
|
||||||
# endif
|
# endif
|
||||||
|
@ -0,0 +1,8 @@
|
|||||||
|
| +0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @18||+1&&| +0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0| @18
|
||||||
|
| +0#0000e05#a8a8a8255@1|b+0#0000000#5fd7ff255| @18||+1&#ffffff0| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@19
|
||||||
|
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@1|c@17||+1&&| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@1|c@17
|
||||||
|
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@1|c@17||+1&&| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@1|c@17
|
||||||
|
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@1|c@13| @3||+1&&| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0@1|c@12>c| @3
|
||||||
|
|~+0#4040ff13&| @20||+1#0000000&|~+0#4040ff13&| @20
|
||||||
|
|~| @20||+1#0000000&|~+0#4040ff13&| @20
|
||||||
|
| +0#0000000&@26|2|,|5|2|-|5|6| @6|A|l@1|
|
@ -1097,18 +1097,19 @@ endfunc
|
|||||||
func Test_diff_with_cursorline_breakindent()
|
func Test_diff_with_cursorline_breakindent()
|
||||||
CheckScreendump
|
CheckScreendump
|
||||||
|
|
||||||
call writefile([
|
let lines =<< trim END
|
||||||
\ 'hi CursorLine ctermbg=red ctermfg=white',
|
hi CursorLine ctermbg=red ctermfg=white
|
||||||
\ 'set noequalalways wrap diffopt=followwrap cursorline breakindent',
|
set noequalalways wrap diffopt=followwrap cursorline breakindent
|
||||||
\ '50vnew',
|
50vnew
|
||||||
\ 'call setline(1, [" "," "," "," "])',
|
call setline(1, [' ', ' ', ' ', ' '])
|
||||||
\ 'exe "norm 20Afoo\<Esc>j20Afoo\<Esc>j20Afoo\<Esc>j20Abar\<Esc>"',
|
exe "norm! 20Afoo\<Esc>j20Afoo\<Esc>j20Afoo\<Esc>j20Abar\<Esc>"
|
||||||
\ 'vnew',
|
vnew
|
||||||
\ 'call setline(1, [" "," "," "," "])',
|
call setline(1, [' ', ' ', ' ', ' '])
|
||||||
\ 'exe "norm 20Abee\<Esc>j20Afoo\<Esc>j20Afoo\<Esc>j20Abaz\<Esc>"',
|
exe "norm! 20Abee\<Esc>j20Afoo\<Esc>j20Afoo\<Esc>j20Abaz\<Esc>"
|
||||||
\ 'windo diffthis',
|
windo diffthis
|
||||||
\ '2wincmd w',
|
2wincmd w
|
||||||
\ ], 'Xtest_diff_cursorline_breakindent', 'D')
|
END
|
||||||
|
call writefile(lines, 'Xtest_diff_cursorline_breakindent', 'D')
|
||||||
let buf = RunVimInTerminal('-S Xtest_diff_cursorline_breakindent', {})
|
let buf = RunVimInTerminal('-S Xtest_diff_cursorline_breakindent', {})
|
||||||
|
|
||||||
call term_sendkeys(buf, "gg0")
|
call term_sendkeys(buf, "gg0")
|
||||||
@ -1124,6 +1125,25 @@ func Test_diff_with_cursorline_breakindent()
|
|||||||
call StopVimInTerminal(buf)
|
call StopVimInTerminal(buf)
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_diff_breakindent_after_filler()
|
||||||
|
CheckScreendump
|
||||||
|
|
||||||
|
let lines =<< trim END
|
||||||
|
set laststatus=0 diffopt+=followwrap breakindent
|
||||||
|
call setline(1, ['a', ' ' .. repeat('c', 50)])
|
||||||
|
vnew
|
||||||
|
call setline(1, ['a', 'b', ' ' .. repeat('c', 50)])
|
||||||
|
windo diffthis
|
||||||
|
norm! G$
|
||||||
|
END
|
||||||
|
call writefile(lines, 'Xtest_diff_breakindent_after_filler', 'D')
|
||||||
|
let buf = RunVimInTerminal('-S Xtest_diff_breakindent_after_filler', #{rows: 8, cols: 45})
|
||||||
|
call VerifyScreenDump(buf, 'Test_diff_breakindent_after_filler', {})
|
||||||
|
|
||||||
|
" clean up
|
||||||
|
call StopVimInTerminal(buf)
|
||||||
|
endfunc
|
||||||
|
|
||||||
func Test_diff_with_syntax()
|
func Test_diff_with_syntax()
|
||||||
CheckScreendump
|
CheckScreendump
|
||||||
|
|
||||||
|
@ -704,6 +704,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 */
|
||||||
|
/**/
|
||||||
|
2151,
|
||||||
/**/
|
/**/
|
||||||
2150,
|
2150,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user