diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-09-01 16:02:07 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-09-01 16:02:07 +0200 |
commit | 04626c243c47af91c2580eaf23e12286180e0e81 (patch) | |
tree | 0d4a090980e722abfb0cccbc1ea2e3cb0317ee3c /src/testdir | |
parent | 6631597452d4644f485a09e4036d117e5f91de70 (diff) | |
download | vim-git-04626c243c47af91c2580eaf23e12286180e0e81.tar.gz |
patch 8.2.3394: filler lines are wrong when changing text in diff modev8.2.3394
Problem: Filler lines are wrong when changing text in diff mode.
Solution: Don't change the filler lines on every change. Check
scrollbinding when updating the filler lines. (closes #8809)
Diffstat (limited to 'src/testdir')
-rw-r--r-- | src/testdir/dumps/Test_diff_scroll_change_01.dump | 20 | ||||
-rw-r--r-- | src/testdir/dumps/Test_diff_scroll_change_02.dump | 20 | ||||
-rw-r--r-- | src/testdir/test_diffmode.vim | 24 |
3 files changed, 64 insertions, 0 deletions
diff --git a/src/testdir/dumps/Test_diff_scroll_change_01.dump b/src/testdir/dumps/Test_diff_scroll_change_01.dump new file mode 100644 index 000000000..886fe6088 --- /dev/null +++ b/src/testdir/dumps/Test_diff_scroll_change_01.dump @@ -0,0 +1,20 @@ +| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|6+0#0000000#5fd7ff255| @33 +| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|7+0#0000000#5fd7ff255| @33 +| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|8+0#0000000#5fd7ff255| @33 +| +0#0000e05#a8a8a8255@1|9+0#0000000#ffffff0| @33||+1&&| +0#0000e05#a8a8a8255@1|9+0#0000000#ffffff0| @33 +| +0#0000e05#a8a8a8255@1|1+0#0000000#ffffff0|0| @32||+1&&| +0#0000e05#a8a8a8255@1|1+0#0000000#ffffff0|0| @32 +| +0#0000e05#a8a8a8255@1|1+0#0000000#ffffff0@1| @32||+1&&| +0#0000e05#a8a8a8255@1|1+0#0000000#ffffff0@1| @32 +| +0#0000e05#a8a8a8255@1|1+0#0000000#ffffff0|2| @32||+1&&| +0#0000e05#a8a8a8255@1|1+0#0000000#ffffff0|2| @32 +| +0#0000e05#a8a8a8255@1|1+0#0000000#ffffff0|3| @32||+1&&| +0#0000e05#a8a8a8255@1|1+0#0000000#ffffff0|3| @32 +| +0#0000e05#a8a8a8255@1|1+0#0000000#ffffff0|4| @32||+1&&| +0#0000e05#a8a8a8255@1|1+0#0000000#ffffff0|4| @32 +|-+0#0000e05#a8a8a8255| |1+0#0000000#ffffff0>5| @32||+1&&|-+0#0000e05#a8a8a8255| |1+0#0000000#ffffff0|5| @32 +|~+0#4040ff13&| @35||+1#0000000&|~+0#4040ff13&| @35 +|~| @35||+1#0000000&|~+0#4040ff13&| @35 +|~| @35||+1#0000000&|~+0#4040ff13&| @35 +|~| @35||+1#0000000&|~+0#4040ff13&| @35 +|~| @35||+1#0000000&|~+0#4040ff13&| @35 +|~| @35||+1#0000000&|~+0#4040ff13&| @35 +|~| @35||+1#0000000&|~+0#4040ff13&| @35 +|~| @35||+1#0000000&|~+0#4040ff13&| @35 +|[+3#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|7|,|2| @11|A|l@1| |[+1&&|N|o| |N|a|m|e|]| |[|+|]| @5|1|5|,|2| @10|B|o|t +| +0&&@74 diff --git a/src/testdir/dumps/Test_diff_scroll_change_02.dump b/src/testdir/dumps/Test_diff_scroll_change_02.dump new file mode 100644 index 000000000..d699ded1f --- /dev/null +++ b/src/testdir/dumps/Test_diff_scroll_change_02.dump @@ -0,0 +1,20 @@ +| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|6+0#0000000#5fd7ff255| @33 +| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|7+0#0000000#5fd7ff255| @33 +| +0#0000e05#a8a8a8255@1|-+0#4040ff13#afffff255@34||+1#0000000#ffffff0| +0#0000e05#a8a8a8255@1|8+0#0000000#5fd7ff255| @33 +| +0#0000e05#a8a8a8255@1|9+0#0000000#ffffff0| @33||+1&&| +0#0000e05#a8a8a8255@1|9+0#0000000#ffffff0| @33 +| +0#0000e05#a8a8a8255@1|1+0#0000000#ffffff0|0| @32||+1&&| +0#0000e05#a8a8a8255@1|1+0#0000000#ffffff0|0| @32 +| +0#0000e05#a8a8a8255@1|1+0#0000000#ffffff0@1| @32||+1&&| +0#0000e05#a8a8a8255@1|1+0#0000000#ffffff0@1| @32 +| +0#0000e05#a8a8a8255@1|1+0#0000000#ffffff0|2| @32||+1&&| +0#0000e05#a8a8a8255@1|1+0#0000000#ffffff0|2| @32 +| +0#0000e05#a8a8a8255@1|1+0#0000000#ffffff0|3| @32||+1&&| +0#0000e05#a8a8a8255@1|1+0#0000000#ffffff0|3| @32 +| +0#0000e05#a8a8a8255@1|1+0#0000000#ffffff0|4| @32||+1&&| +0#0000e05#a8a8a8255@1|1+0#0000000#ffffff0|4| @32 +| +0#0000e05#a8a8a8255@1|1+0#0000000#ffd7ff255|5>x+2&#ff404010| +0&#ffd7ff255@31||+1&#ffffff0| +0#0000e05#a8a8a8255@1|1+0#0000000#ffd7ff255|5| @32 +|~+0#4040ff13#ffffff0| @35||+1#0000000&|~+0#4040ff13&| @35 +|~| @35||+1#0000000&|~+0#4040ff13&| @35 +|~| @35||+1#0000000&|~+0#4040ff13&| @35 +|~| @35||+1#0000000&|~+0#4040ff13&| @35 +|~| @35||+1#0000000&|~+0#4040ff13&| @35 +|~| @35||+1#0000000&|~+0#4040ff13&| @35 +|~| @35||+1#0000000&|~+0#4040ff13&| @35 +|~| @35||+1#0000000&|~+0#4040ff13&| @35 +|[+3#0000000&|N|o| |N|a|m|e|]| |[|+|]| @5|7|,|3| @11|A|l@1| |[+1&&|N|o| |N|a|m|e|]| |[|+|]| @5|1|5|,|3| @10|B|o|t +| +0&&@74 diff --git a/src/testdir/test_diffmode.vim b/src/testdir/test_diffmode.vim index 5400de6d3..268c3e9b5 100644 --- a/src/testdir/test_diffmode.vim +++ b/src/testdir/test_diffmode.vim @@ -993,6 +993,30 @@ func Test_diff_screen() call delete('XdiffSetup') endfunc +func Test_diff_with_scroll_and_change() + CheckScreendump + + let lines =<< trim END + call setline(1, range(1, 15)) + vnew + call setline(1, range(9, 15)) + windo diffthis + wincmd h + exe "normal Gl5\<C-E>" + END + call writefile(lines, 'Xtest_scroll_change') + let buf = RunVimInTerminal('-S Xtest_scroll_change', {}) + + call VerifyScreenDump(buf, 'Test_diff_scroll_change_01', {}) + + call term_sendkeys(buf, "ax\<Esc>") + call VerifyScreenDump(buf, 'Test_diff_scroll_change_02', {}) + + " clean up + call StopVimInTerminal(buf) + call delete('Xtest_scroll_change') +endfunc + func Test_diff_with_cursorline() CheckScreendump |