patch 9.1.1753: defaults: 'diffopt' option value can be improved
Problem: defaults: 'diffopt' option value can be improved
Solution: Update diffopt defaults to include "indent-heuristic" and
"inline:char" (Yee Cheng Chin)
The default diff options have not been updated much despite new
functionality having been added to Vim.
- indent-heurstic: This has been enabled by default in Git since
33de716387 in 2017. Given that Vim uses xdiff from Git, it makes sense
to track the default configuration from Git.
- inline:char: This turns on character-wise inline highlighting which is
generally much better than the default inline:simple. It has been
implemented since #16881 and we have not seen reports of any issues
with it, and it has received good feedbacks.
closes: #18255
Signed-off-by: Yee Cheng Chin <ychin.git@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
b49d695fbc
commit
976b365305
@ -1,4 +1,4 @@
|
||||
*options.txt* For Vim version 9.1. Last change: 2025 Sep 10
|
||||
*options.txt* For Vim version 9.1. Last change: 2025 Sep 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -3067,7 +3067,7 @@ A jump table for the options with a short description can be found at |Q_op|.
|
||||
|
||||
*'dip'* *'diffopt'*
|
||||
'diffopt' 'dip' string (default
|
||||
"internal,filler,closeoff,inline:simple")
|
||||
"internal,filler,closeoff,indent-heuristic,inline:char")
|
||||
global
|
||||
{not available when compiled without the |+diff|
|
||||
feature}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
*version9.txt* For Vim version 9.1. Last change: 2025 Sep 10
|
||||
*version9.txt* For Vim version 9.1. Last change: 2025 Sep 11
|
||||
|
||||
|
||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||
@ -41670,6 +41670,8 @@ Default values: ~
|
||||
- the default value for 'showcmd' is always enabled when using non-compatible
|
||||
mode (previously, it was off on UNIX systems) and consequently removed from
|
||||
|defaults.vim|
|
||||
- Improve the diff experience by updating the 'diffopt' default value to
|
||||
"internal,filler,closeoff,indent-heuristic,inline:char".
|
||||
|
||||
Completion: ~
|
||||
- allow to complete directories from 'cdpath' for |:cd| and similar commands,
|
||||
|
||||
@ -46,9 +46,9 @@ static int diff_need_update = FALSE; // ex_diffupdate needs to be called
|
||||
#define ALL_WHITE_DIFF (DIFF_IWHITE | DIFF_IWHITEALL | DIFF_IWHITEEOL)
|
||||
#define ALL_INLINE (DIFF_INLINE_NONE | DIFF_INLINE_SIMPLE | DIFF_INLINE_CHAR | DIFF_INLINE_WORD)
|
||||
#define ALL_INLINE_DIFF (DIFF_INLINE_CHAR | DIFF_INLINE_WORD)
|
||||
static int diff_flags = DIFF_INTERNAL | DIFF_FILLER | DIFF_CLOSE_OFF;
|
||||
static int diff_flags = DIFF_INTERNAL | DIFF_FILLER | DIFF_CLOSE_OFF | DIFF_INLINE_CHAR;
|
||||
|
||||
static long diff_algorithm = 0;
|
||||
static long diff_algorithm = XDF_INDENT_HEURISTIC;
|
||||
|
||||
#define LBUFLEN 50 // length of line in diff file
|
||||
|
||||
|
||||
@ -896,7 +896,7 @@ static struct vimoption options[] =
|
||||
|P_NODUP,
|
||||
#ifdef FEAT_DIFF
|
||||
(char_u *)&p_dip, PV_NONE, did_set_diffopt, expand_set_diffopt,
|
||||
{(char_u *)"internal,filler,closeoff,inline:simple",
|
||||
{(char_u *)"internal,filler,closeoff,indent-heuristic,inline:char",
|
||||
(char_u *)NULL}
|
||||
#else
|
||||
(char_u *)NULL, PV_NONE, NULL, NULL,
|
||||
|
||||
@ -17,4 +17,4 @@
|
||||
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|
||||
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|
||||
|X+3#0000000&|d|i|f|i|l|e|1| @10|1|,|0|-|1| @9|A|l@1| |X+1&&|d|i|f|i|l|e|2| @10|1|,|0|-|1| @9|A|l@1
|
||||
|:+0&&|s|e|t| |d|i|f@1|o|p|t|+|=|i|n|t|e|r|n|a|l| @52
|
||||
|:+0&&| @73
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
| +0#0000e05#a8a8a8255@1|b+8#ffffff16#ff404010|e@1| @31||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34
|
||||
| +0#0000e05#a8a8a8255@1|f+0#0000000#ffffff0|o@1| @31||+1&&| +0#0000e05#a8a8a8255@1>f+8#ffffff16#ff404010|o@1| @31
|
||||
| +0#0000e05#a8a8a8255@1|f+0#0000000#ffffff0|o@1| @31||+1&&| +0#0000e05#a8a8a8255@1|f+0#0000000#ffffff0|o@1| @31
|
||||
| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010|a|z| +0&#ffd7ff255@31||+1&#ffffff0| +0#0000e05#a8a8a8255@1|f+2#0000000#ff404010|o@1| +0&#ffd7ff255@31
|
||||
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|b+0#0000000#5fd7ff255|a|r| @31
|
||||
| +0#0000e05#a8a8a8255@1|b+0#0000000#ffd7ff255|a|z+2&#ff404010| +0&#ffd7ff255@31||+1&#ffffff0| +0#0000e05#a8a8a8255@1|f+2#0000000#ff404010|o@1| +0&#ffd7ff255@31
|
||||
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|b+0#0000000#ffd7ff255|a|r+2&#ff404010| +0&#ffd7ff255@31
|
||||
|~+0#4040ff13#ffffff0| @35||+1#0000000&|~+0#4040ff13&| @35
|
||||
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|
||||
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
| +0#0000e05#a8a8a8255@1|b+0#0000000#5fd7ff255|e@1| @31||+1&#ffffff0| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34
|
||||
| +0#0000e05#a8a8a8255@1|f+0#0000000#ffffff0|o@1| @31||+1&&| +0#0000e05#a8a8a8255@1|f+0#0000000#ffffff0|o@1| @31
|
||||
| +0#0000e05#a8a8a8255@1|f+8#ffffff16#ff404010|o@1| @31||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1>f+8#ffffff16#ff404010|o@1| @31
|
||||
| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010|a|z| +0&#ffd7ff255@31||+1&#ffffff0| +0#0000e05#a8a8a8255@1|f+2#0000000#ff404010|o@1| +0&#ffd7ff255@31
|
||||
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|b+0#0000000#5fd7ff255|a|r| @31
|
||||
| +0#0000e05#a8a8a8255@1|b+0#0000000#ffd7ff255|a|z+2&#ff404010| +0&#ffd7ff255@31||+1&#ffffff0| +0#0000e05#a8a8a8255@1|f+2#0000000#ff404010|o@1| +0&#ffd7ff255@31
|
||||
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|b+0#0000000#ffd7ff255|a|r+2&#ff404010| +0&#ffd7ff255@31
|
||||
|~+0#4040ff13#ffffff0| @35||+1#0000000&|~+0#4040ff13&| @35
|
||||
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|
||||
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
| +0#0000e05#a8a8a8255@1|b+0#0000000#5fd7ff255|e@1| @31||+1&#ffffff0| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34
|
||||
| +0#0000e05#a8a8a8255@1|f+0#0000000#ffffff0|o@1| @31||+1&&| +0#0000e05#a8a8a8255@1|f+0#0000000#ffffff0|o@1| @31
|
||||
| +0#0000e05#a8a8a8255@1|f+0#0000000#ffffff0|o@1| @31||+1&&| +0#0000e05#a8a8a8255@1|f+0#0000000#ffffff0|o@1| @31
|
||||
| +0#0000e05#a8a8a8255@1|b+10#ffffff16#ff404010|a|z| +8&&@31||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1>f+10#ffffff16#ff404010|o@1| +8&&@31
|
||||
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|b+0#0000000#5fd7ff255|a|r| @31
|
||||
| +0#0000e05#a8a8a8255@1|b+8#ffffff16#ff404010|a|z+10&&| +8&&@31||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1>f+10#ffffff16#ff404010|o@1| +8&&@31
|
||||
| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|b+0#0000000#ffd7ff255|a|r+2&#ff404010| +0&#ffd7ff255@31
|
||||
|~+0#4040ff13#ffffff0| @35||+1#0000000&|~+0#4040ff13&| @35
|
||||
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|
||||
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|
||||
|
||||
20
src/testdir/dumps/Test_smooth_diff_change_line_3a.dump
Normal file
20
src/testdir/dumps/Test_smooth_diff_change_line_3a.dump
Normal file
@ -0,0 +1,20 @@
|
||||
|<+0#4040ff13#ffffff0@2| +0#0000000&|a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a||+1&&|<+0#4040ff13&@2| +0#0000000&|a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a
|
||||
| +0#0000e05#a8a8a8255@1|b+0#0000000#ffffff0|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| ||+1&&| +0#0000e05#a8a8a8255@1|b+0#0000000#ffffff0|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c|
|
||||
| +0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c||+1&&| +0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c
|
||||
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0|a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| @14||+1&&| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0|a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| @14
|
||||
| +0#0000e05#a8a8a8255@1|f+2#0000000#ff404010|o@1| +0&#ffd7ff255@31||+1&#ffffff0| +0#0000e05#a8a8a8255@1|b+2#0000000#ff404010|a|r|b+0&#ffd7ff255|a>r| @28
|
||||
| +0#0000e05#a8a8a8255@1|b+0#0000000#ffd7ff255|a|r| @31||+1&#ffffff0| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34
|
||||
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0|a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b||+1&&| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0|a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b
|
||||
| +0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a||+1&&| +0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a
|
||||
| +0#0000e05#a8a8a8255@1|b+0#0000000#ffffff0|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| ||+1&&| +0#0000e05#a8a8a8255@1|b+0#0000000#ffffff0|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c|
|
||||
| +0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c||+1&&| +0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c
|
||||
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0|a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b||+1&&| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0|a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b
|
||||
| +0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a||+1&&| +0#0000e05#a8a8a8255@1|c+0#0000000#ffffff0| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a
|
||||
| +0#0000e05#a8a8a8255@1|b+0#0000000#ffffff0|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| ||+1&&| +0#0000e05#a8a8a8255@1|b+0#0000000#ffffff0|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c|
|
||||
| +0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c||+1&&| +0#0000e05#a8a8a8255@1|a+0#0000000#ffffff0|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c
|
||||
| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0|a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| @14||+1&&| +0#0000e05#a8a8a8255@1| +0#0000000#ffffff0|a|b|c| |a|b|c| |a|b|c| |a|b|c| |a|b|c| @14
|
||||
|~+0#4040ff13&| @35||+1#0000000&|~+0#4040ff13&| @35
|
||||
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|
||||
|~| @35||+1#0000000&|~+0#4040ff13&| @35
|
||||
|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|2|,|4| @11|A|l@1| |[+3&&|N|o| |N|a|m|e|]| |[|+|]| @5|2|,|6| @11|A|l@1
|
||||
| +0&&@74
|
||||
@ -862,6 +862,7 @@ func Test_diff_nomodifiable()
|
||||
endfunc
|
||||
|
||||
func Test_diff_hlID()
|
||||
set diffopt=internal,filler
|
||||
new
|
||||
call setline(1, [1, 2, 3, 'Yz', 'a dxxg',])
|
||||
diffthis
|
||||
@ -904,6 +905,7 @@ func Test_diff_hlID()
|
||||
call assert_equal(synIDattr(diff_hlID(3, 1), "name"), "")
|
||||
|
||||
%bwipe!
|
||||
set diffopt&
|
||||
endfunc
|
||||
|
||||
func Test_diff_filler()
|
||||
@ -1079,18 +1081,18 @@ func Test_diff_screen()
|
||||
call term_sendkeys(buf, ":set diffopt+=algorithm:histogram\<cr>")
|
||||
call VerifyScreenDump(buf, 'Test_diff_09', {})
|
||||
|
||||
" Test 10-11: normal/indent-heuristic
|
||||
" Test 10-11: with/without indent-heuristic
|
||||
call term_sendkeys(buf, ":set diffopt&vim\<cr>")
|
||||
call WriteDiffFiles(buf, ['', ' def finalize(values)', '', ' values.each do |v|', ' v.finalize', ' end'],
|
||||
\ ['', ' def finalize(values)', '', ' values.each do |v|', ' v.prepare', ' end', '',
|
||||
\ ' values.each do |v|', ' v.finalize', ' end'])
|
||||
call term_sendkeys(buf, ":diffupdate!\<cr>")
|
||||
call term_sendkeys(buf, ":set diffopt+=internal\<cr>")
|
||||
call VerifyScreenDump(buf, 'Test_diff_10', {})
|
||||
call term_sendkeys(buf, ":set diffopt+=internal\<cr>:\<cr>")
|
||||
call VerifyScreenDump(buf, 'Test_diff_11', {})
|
||||
|
||||
" Leave trailing : at commandline!
|
||||
call term_sendkeys(buf, ":set diffopt+=indent-heuristic\<cr>:\<cr>")
|
||||
call VerifyScreenDump(buf, 'Test_diff_11', {}, 'one')
|
||||
call term_sendkeys(buf, ":set diffopt-=indent-heuristic\<cr>:\<cr>")
|
||||
call VerifyScreenDump(buf, 'Test_diff_10', {}, 'one')
|
||||
" shouldn't matter, if indent-algorithm comes before or after the algorithm
|
||||
call term_sendkeys(buf, ":set diffopt&\<cr>")
|
||||
call term_sendkeys(buf, ":set diffopt+=indent-heuristic,algorithm:patience\<cr>:\<cr>")
|
||||
@ -1331,6 +1333,7 @@ func Test_diff_with_syntax()
|
||||
call writefile(lines, 'Xprogram2.c', 'D')
|
||||
|
||||
let lines =<< trim END
|
||||
set diffopt=internal,filler
|
||||
edit Xprogram1.c
|
||||
diffsplit Xprogram2.c
|
||||
END
|
||||
@ -1473,6 +1476,7 @@ func Test_diff_rnu()
|
||||
CheckScreendump
|
||||
|
||||
let content =<< trim END
|
||||
set diffopt=internal,filler
|
||||
call setline(1, ['a', 'a', 'a', 'y', 'b', 'b', 'b', 'b', 'b'])
|
||||
vnew
|
||||
call setline(1, ['a', 'a', 'a', 'x', 'x', 'x', 'b', 'b', 'b', 'b', 'b'])
|
||||
@ -1560,6 +1564,7 @@ endfunc
|
||||
" Test for adding/removing lines inside diff chunks, between diff chunks
|
||||
" and before diff chunks
|
||||
func Test_diff_modify_chunks()
|
||||
set diffopt=internal,filler
|
||||
enew!
|
||||
let w2_id = win_getid()
|
||||
call setline(1, ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'])
|
||||
@ -1639,6 +1644,7 @@ func Test_diff_modify_chunks()
|
||||
call assert_equal(['', '', '', '', '', '', '', '', ''], hl)
|
||||
|
||||
%bw!
|
||||
set diffopt&
|
||||
endfunc
|
||||
|
||||
func Test_diff_binary()
|
||||
@ -2868,7 +2874,7 @@ func Test_linematch_diff()
|
||||
call delete('.Xdifile2.swp')
|
||||
call WriteDiffFiles(0, [], [])
|
||||
let buf = RunVimInTerminal('-d Xdifile1 Xdifile2', {})
|
||||
call term_sendkeys(buf, ":set autoread\<CR>\<c-w>w:set autoread\<CR>\<c-w>w")
|
||||
call term_sendkeys(buf, ":set autoread\<CR>\<c-w>w:set autoread\<CR>\<c-w>w")
|
||||
|
||||
" enable linematch
|
||||
call term_sendkeys(buf, ":set diffopt=internal,filler,linematch:30\<CR>")
|
||||
@ -2896,7 +2902,7 @@ func Test_linematch_diff_iwhite()
|
||||
call delete('.Xdifile2.swp')
|
||||
call WriteDiffFiles(0, [], [])
|
||||
let buf = RunVimInTerminal('-d Xdifile1 Xdifile2', {})
|
||||
call term_sendkeys(buf, ":set autoread\<CR>\<c-w>w:set autoread\<CR>\<c-w>w")
|
||||
call term_sendkeys(buf, ":set autoread\<CR>\<c-w>w:set autoread\<CR>\<c-w>w")
|
||||
|
||||
" setup a diff with 2 files and set linematch:30, with ignore white
|
||||
call term_sendkeys(buf, ":set diffopt=internal,filler,linematch:30\<CR>")
|
||||
@ -2923,7 +2929,7 @@ func Test_linematch_diff_grouping()
|
||||
call delete('.Xdifile2.swp')
|
||||
call WriteDiffFiles(0, [], [])
|
||||
let buf = RunVimInTerminal('-d Xdifile1 Xdifile2', {})
|
||||
call term_sendkeys(buf, ":set autoread\<CR>\<c-w>w:set autoread\<CR>\<c-w>w")
|
||||
call term_sendkeys(buf, ":set autoread\<CR>\<c-w>w:set autoread\<CR>\<c-w>w")
|
||||
|
||||
" a diff that would result in multiple groups before grouping optimization
|
||||
call term_sendkeys(buf, ":set diffopt=internal,filler,linematch:30\<CR>")
|
||||
@ -2961,7 +2967,7 @@ func Test_linematch_diff_scroll()
|
||||
call delete('.Xdifile2.swp')
|
||||
call WriteDiffFiles(0, [], [])
|
||||
let buf = RunVimInTerminal('-d Xdifile1 Xdifile2', {})
|
||||
call term_sendkeys(buf, ":set autoread\<CR>\<c-w>w:set autoread\<CR>\<c-w>w")
|
||||
call term_sendkeys(buf, ":set autoread\<CR>\<c-w>w:set autoread\<CR>\<c-w>w")
|
||||
|
||||
" a diff that would result in multiple groups before grouping optimization
|
||||
call term_sendkeys(buf, ":set diffopt=internal,filler,linematch:30\<CR>")
|
||||
@ -2992,7 +2998,7 @@ func Test_linematch_line_limit_exceeded()
|
||||
call delete('.Xdifile1.swp')
|
||||
call delete('.Xdifile2.swp')
|
||||
call WriteDiffFiles(0, [], [])
|
||||
let buf = RunVimInTerminal('-d Xdifile1 Xdifile2', {})
|
||||
let buf = RunVimInTerminal('-d Xdifile1 Xdifile2', {})
|
||||
call term_sendkeys(buf, ":set autoread\<CR>\<c-w>w:set autoread\<CR>\<c-w>w")
|
||||
|
||||
call term_sendkeys(buf, ":set diffopt=internal,filler,linematch:10\<CR>")
|
||||
@ -3044,7 +3050,7 @@ func Test_linematch_3diffs()
|
||||
call delete('.Xdifile3.swp')
|
||||
call WriteDiffFiles3(0, [], [], [])
|
||||
let buf = RunVimInTerminal('-d Xdifile1 Xdifile2 Xdifile3', {})
|
||||
call term_sendkeys(buf, "1\<c-w>w:set autoread\<CR>")
|
||||
call term_sendkeys(buf, "1\<c-w>w:set autoread\<CR>")
|
||||
call term_sendkeys(buf, "2\<c-w>w:set autoread\<CR>")
|
||||
call term_sendkeys(buf, "3\<c-w>w:set autoread\<CR>")
|
||||
call term_sendkeys(buf, ":set diffopt=internal,filler,linematch:30\<CR>")
|
||||
@ -3079,7 +3085,7 @@ func Test_linematch_3diffs_sanity_check()
|
||||
func Test_linematch_3diffs_sanity_check()
|
||||
CheckScreendump
|
||||
call delete('.Xfile_linematch1.swp')
|
||||
call delete('.Xfile_linematch2.swp')
|
||||
call delete('.Xfile_linematch2.swp')
|
||||
call delete('.Xfile_linematch3.swp')
|
||||
let lines =<< trim END
|
||||
set diffopt=internal,filler,linematch:60
|
||||
|
||||
@ -301,11 +301,43 @@ func Test_smoothscroll_diff_mode()
|
||||
call StopVimInTerminal(buf)
|
||||
endfunc
|
||||
|
||||
func Test_smoothscroll_diff_change_line_default()
|
||||
CheckScreendump
|
||||
|
||||
" Uses the new diffopt default with indent-heuristic and inline:char
|
||||
let lines =<< trim END
|
||||
set diffopt=internal,filler,closeoff,indent-heuristic,inline:char,followwrap smoothscroll
|
||||
call setline(1, repeat(' abc', &columns))
|
||||
call setline(2, 'bar')
|
||||
call setline(3, repeat(' abc', &columns))
|
||||
vnew
|
||||
call setline(1, repeat(' abc', &columns))
|
||||
call setline(2, 'foo')
|
||||
call setline(3, 'bar')
|
||||
call setline(4, repeat(' abc', &columns))
|
||||
windo exe "normal! 2gg5\<C-E>"
|
||||
windo diffthis
|
||||
END
|
||||
call writefile(lines, 'XSmoothDiffChangeLine', 'D')
|
||||
let buf = RunVimInTerminal('-S XSmoothDiffChangeLine', #{rows: 20, columns: 55})
|
||||
|
||||
call VerifyScreenDump(buf, 'Test_smooth_diff_change_line_1', {})
|
||||
call term_sendkeys(buf, "Abar")
|
||||
call VerifyScreenDump(buf, 'Test_smooth_diff_change_line_2', {})
|
||||
call term_sendkeys(buf, "\<Esc>")
|
||||
call VerifyScreenDump(buf, 'Test_smooth_diff_change_line_3a', {})
|
||||
call term_sendkeys(buf, "yyp")
|
||||
call VerifyScreenDump(buf, 'Test_smooth_diff_change_line_4', {})
|
||||
|
||||
call StopVimInTerminal(buf)
|
||||
endfunc
|
||||
|
||||
func Test_smoothscroll_diff_change_line()
|
||||
CheckScreendump
|
||||
|
||||
" Uses the old diffopt default
|
||||
let lines =<< trim END
|
||||
set diffopt+=followwrap smoothscroll
|
||||
set diffopt=internal,filler,closeoff,followwrap,inline:simple smoothscroll
|
||||
call setline(1, repeat(' abc', &columns))
|
||||
call setline(2, 'bar')
|
||||
call setline(3, repeat(' abc', &columns))
|
||||
|
||||
@ -724,6 +724,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1753,
|
||||
/**/
|
||||
1752,
|
||||
/**/
|
||||
|
||||
Reference in New Issue
Block a user