From 3420cbf6cb75c95e169a58d578c95e7da59a9b35 Mon Sep 17 00:00:00 2001 From: Andy Stewart Date: Tue, 10 Mar 2015 10:17:34 +0100 Subject: [PATCH] Preserve alternate buffer when processing realtime diff. See #238. --- autoload/gitgutter/diff.vim | 2 +- test/helper.vim | 5 +++++ test/keepAlt.expected | 3 +++ test/testKeepAlt.vim | 12 ++++++++++++ 4 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 test/keepAlt.expected create mode 100644 test/testKeepAlt.vim diff --git a/autoload/gitgutter/diff.vim b/autoload/gitgutter/diff.vim index 01b447b..1e02662 100644 --- a/autoload/gitgutter/diff.vim +++ b/autoload/gitgutter/diff.vim @@ -30,7 +30,7 @@ function! gitgutter#diff#run_diff(realtime, use_external_grep) let buff_file .= '.'.extension endif let cmd .= 'git show '.blob_name.' > '.blob_file.' && ' - execute 'silent write' buff_file + execute 'keepalt silent write' buff_file endif let cmd .= 'git diff --no-ext-diff --no-color -U0 '.g:gitgutter_diff_args.' -- ' diff --git a/test/helper.vim b/test/helper.vim index 003a2ac..aaccf39 100644 --- a/test/helper.vim +++ b/test/helper.vim @@ -20,3 +20,8 @@ function! DumpGitDiffStaged(filename) call system('git diff --staged fixture.txt > '.a:filename.'.actual') endfunction +function! Dump(text, filename) + let msg = type(a:text) == 1 ? split(a:text, '\n') : a:text + call writefile(msg, a:filename.'.actual', 'a') +endfunction + diff --git a/test/keepAlt.expected b/test/keepAlt.expected new file mode 100644 index 0000000..feee7b5 --- /dev/null +++ b/test/keepAlt.expected @@ -0,0 +1,3 @@ +buffer: fixture.txt +altbuffer: +altbuffer: diff --git a/test/testKeepAlt.vim b/test/testKeepAlt.vim new file mode 100644 index 0000000..303ff0f --- /dev/null +++ b/test/testKeepAlt.vim @@ -0,0 +1,12 @@ +source helper.vim +call Setup() + +enew +execute "normal! \" +call Dump('buffer: '.bufname(''), 'keepAlt') +call Dump('altbuffer: '.bufname('#'), 'keepAlt') + +normal ggx +doautocmd CursorHold +call Dump('altbuffer: '.bufname('#'), 'keepAlt') +