From 5fc9eab788608fb4adcb07a8d79354dcafefaa6a Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Wed, 4 Jan 2017 01:57:09 +0900 Subject: [PATCH] Add --sync flag to Plug{Install,Update} Installer is not synchronous when started on VimEnter since has('vim_starting') returns 0 in that case. We needed a way to make the installer synchronous. Related: #574 --- plug.vim | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/plug.vim b/plug.vim index ca0c3e2..95d8eab 100644 --- a/plug.vim +++ b/plug.vim @@ -61,7 +61,7 @@ " More information: https://github.com/junegunn/vim-plug " " -" Copyright (c) 2016 Junegunn Choi +" Copyright (c) 2017 Junegunn Choi " " MIT License " @@ -919,7 +919,8 @@ function! s:check_ruby() endfunction function! s:update_impl(pull, force, args) abort - let args = copy(a:args) + let sync = index(a:args, '--sync') >= 0 || has('vim_starting') + let args = filter(copy(a:args), 'v:val != "--sync"') let threads = (len(args) > 0 && args[-1] =~ '^[1-9][0-9]*$') ? \ remove(args, -1) : get(g:, 'plug_threads', 16) @@ -1020,7 +1021,7 @@ function! s:update_impl(pull, force, args) abort endtry else call s:update_vim() - while use_job && has('vim_starting') + while use_job && sync sleep 100m if s:update.fin break