From e8970f24abe47bbe87626275ee87c67870d016c3 Mon Sep 17 00:00:00 2001 From: Jerome Reybert <jreybert@gmail.com> Date: Thu, 22 Oct 2015 15:09:54 +0200 Subject: [PATCH] plugin/magit.vim: full buffer cleanup when update --- autoload/magit/sign.vim | 10 ++++++++++ plugin/magit.vim | 7 ++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/autoload/magit/sign.vim b/autoload/magit/sign.vim index 646347a..7a53390 100644 --- a/autoload/magit/sign.vim +++ b/autoload/magit/sign.vim @@ -14,6 +14,16 @@ let s:supports_star = v:version > 703 || (v:version == 703 && has("patch596")) let s:bufnr = bufnr(g:magit_buffer_name) +function! magit#sign#remove_all(...) + if ( a:0 == 1 ) + let pattern = a:1 + else + let pattern = '^Magit.*' + endif + let signs = magit#sign#find_signs(pattern, 1, line('$')) + call magit#sign#remove_signs(signs) +endfunction + " magit#sign#remove_signs: unplace a list of signs " param[in] sign_ids: list of signs dict function! magit#sign#remove_signs(sign_ids) diff --git a/plugin/magit.vim b/plugin/magit.vim index 77daf24..bf5eb4a 100644 --- a/plugin/magit.vim +++ b/plugin/magit.vim @@ -576,7 +576,12 @@ function! magit#update_buffer() " Playing with foldenable around does not help. " mkview does not help either. let l:winview = winsaveview() - silent! %d + + " remove all signs (needed as long as we wipe buffer) + call magit#sign#remove_all() + + " delete buffer + silent! execute "silent :%delete _" call <SID>mg_get_info() call <SID>mg_section_help('global') -- GitLab