vim-patch:9.0.2151: 'breakindent' is not drawn after diff filler lines (#26412)

Problem:  'breakindent' is not drawn after diff filler lines.
Solution: Correct check for whether 'breakindent' should be drawn.

closes: vim/vim#13624

588f20dece

Cherry-pick Test_diff_with_syntax() change from patch 9.0.1257.
This commit is contained in:
zeertzjq
2023-12-06 07:16:02 +08:00
committed by GitHub
parent 4a1abc91a0
commit 06ff540e1c
3 changed files with 69 additions and 24 deletions

View File

@@ -1083,18 +1083,19 @@ endfunc
func Test_diff_with_cursorline_breakindent()
CheckScreendump
call writefile([
\ 'hi CursorLine ctermbg=red ctermfg=white',
\ 'set noequalalways wrap diffopt=followwrap cursorline breakindent',
\ '50vnew',
\ 'call setline(1, [" "," "," "," "])',
\ 'exe "norm 20Afoo\<Esc>j20Afoo\<Esc>j20Afoo\<Esc>j20Abar\<Esc>"',
\ 'vnew',
\ 'call setline(1, [" "," "," "," "])',
\ 'exe "norm 20Abee\<Esc>j20Afoo\<Esc>j20Afoo\<Esc>j20Abaz\<Esc>"',
\ 'windo diffthis',
\ '2wincmd w',
\ ], 'Xtest_diff_cursorline_breakindent', 'D')
let lines =<< trim END
hi CursorLine ctermbg=red ctermfg=white
set noequalalways wrap diffopt=followwrap cursorline breakindent
50vnew
call setline(1, [' ', ' ', ' ', ' '])
exe "norm! 20Afoo\<Esc>j20Afoo\<Esc>j20Afoo\<Esc>j20Abar\<Esc>"
vnew
call setline(1, [' ', ' ', ' ', ' '])
exe "norm! 20Abee\<Esc>j20Afoo\<Esc>j20Afoo\<Esc>j20Abaz\<Esc>"
windo diffthis
2wincmd w
END
call writefile(lines, 'Xtest_diff_cursorline_breakindent', 'D')
let buf = RunVimInTerminal('-S Xtest_diff_cursorline_breakindent', {})
call term_sendkeys(buf, "gg0")
@@ -1110,11 +1111,30 @@ func Test_diff_with_cursorline_breakindent()
call StopVimInTerminal(buf)
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()
CheckScreendump
let lines =<< trim END
void doNothing() {
void doNothing() {
int x = 0;
char *s = "hello";
return 5;
@@ -1122,7 +1142,7 @@ func Test_diff_with_syntax()
END
call writefile(lines, 'Xprogram1.c', 'D')
let lines =<< trim END
void doSomething() {
void doSomething() {
int x = 0;
char *s = "there";
return 5;
@@ -1131,7 +1151,7 @@ func Test_diff_with_syntax()
call writefile(lines, 'Xprogram2.c', 'D')
let lines =<< trim END
edit Xprogram1.c
edit Xprogram1.c
diffsplit Xprogram2.c
END
call writefile(lines, 'Xtest_diff_syntax', 'D')