diff --git a/autoload/magit/sign.vim b/autoload/magit/sign.vim index 646347a938d2d11cd0daf162a793dda10c5a8d25..7a53390921aafefac34b623b5efda53116173d5c 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 77daf24308cb0200cad9cf13169deb7e4c016102..bf5eb4a4035b6589f1b5e999eaa71b495dbb7edd 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')