From c0a83826f934cad3fff47739f83c97175853595e Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Sat, 8 Oct 2016 23:06:24 +0900 Subject: [PATCH] Print warning message when plug window is closed --- plug.vim | 12 +++++++++++- test/workflow.vader | 11 +++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/plug.vim b/plug.vim index aee4722..f48a15b 100644 --- a/plug.vim +++ b/plug.vim @@ -810,6 +810,10 @@ function! s:do(pull, force, todo) if spec.do[0] == ':' call s:load_plugin(spec) execute spec.do[1:] + if !s:plug_window_exists() + cd - + throw 'Warning: vim-plug was terminated by the post-update hook of '.name + endif else let error = s:bang(spec.do) endif @@ -1059,7 +1063,13 @@ function! s:update_finish() redraw endfor silent 4 d _ - call s:do(s:update.pull, s:update.force, filter(copy(s:update.all), 'index(s:update.errors, v:key) < 0 && has_key(v:val, "do")')) + try + call s:do(s:update.pull, s:update.force, filter(copy(s:update.all), 'index(s:update.errors, v:key) < 0 && has_key(v:val, "do")')) + catch + call s:warn('echom', v:exception) + call s:warn('echo', '') + return + endtry call s:finish(s:update.pull) call setline(1, 'Updated. Elapsed time: ' . split(reltimestr(reltime(s:update.start)))[0] . ' sec.') call s:switch_out('normal! gg') diff --git a/test/workflow.vader b/test/workflow.vader index 81e8115..458d19f 100644 --- a/test/workflow.vader +++ b/test/workflow.vader @@ -959,6 +959,17 @@ Execute (Vim command with : prefix): AssertEqual '12345', getline(2) q +Execute (Vim command with : prefix closing the window): + call plug#begin() + Plug 'junegunn/vim-pseudocl', { 'do': ':close' } + call plug#end() + + redir => out + PlugInstall! + redir END + Assert out =~ 'vim-plug was terminated' + Assert out =~ 'of vim-pseudocl' + ********************************************************************** ~ Overriding `dir` **********************************************************************