Allow unmanaged plugins inside g:plug_home (#95)

This commit is contained in:
Junegunn Choi 2014-09-27 14:41:57 +09:00
parent f31477407a
commit 5d910fc9ea
3 changed files with 41 additions and 25 deletions

View File

@ -1015,10 +1015,9 @@ function! s:clean(force)
" List of valid directories " List of valid directories
let dirs = [] let dirs = []
let managed = filter(copy(g:plugs), 's:is_managed(v:key)') let [cnt, total] = [0, len(g:plugs)]
let [cnt, total] = [0, len(managed)] for [name, spec] in items(g:plugs)
for spec in values(managed) if !s:is_managed(name) || s:git_valid(spec, 0, 1)[0]
if s:git_valid(spec, 0, 1)[0]
call add(dirs, spec.dir) call add(dirs, spec.dir)
endif endif
let cnt += 1 let cnt += 1

View File

@ -15,8 +15,8 @@ if [ ! -d fzf-staged ]; then
fi fi
make_dirs() { make_dirs() {
mkdir -p "$1" mkdir -p "temp/$1"
cd "$1" cd "temp/$1"
mkdir -p autoload colors ftdetect ftplugin indent plugin syntax mkdir -p autoload colors ftdetect ftplugin indent plugin syntax
for d in *; do for d in *; do
[ -d $d ] || continue [ -d $d ] || continue
@ -34,8 +34,8 @@ EOF
make_dirs xxx/ xxx make_dirs xxx/ xxx
make_dirs xxx/after xxx make_dirs xxx/after xxx
mkdir -p xxx/doc mkdir -p temp/xxx/doc
cat > xxx/doc/xxx.txt << DOC cat > temp/xxx/doc/xxx.txt << DOC
hello *xxx* hello *xxx*
DOC DOC

View File

@ -731,12 +731,12 @@ Execute (Using custom dir):
********************************************************************** **********************************************************************
Before (Clear global vars): Before (Clear global vars):
let g:xxx = [] let g:xxx = []
set rtp-=$PWD/xxx/ set rtp-=$PWD/temp/xxx/
set rtp-=$PWD/xxx/after set rtp-=$PWD/temp/xxx/after
Execute (Immediate loading): Execute (Immediate loading):
call plug#begin() call plug#begin()
Plug '$PWD/xxx' Plug '$PWD/temp/xxx'
call plug#end() call plug#end()
" FIXME: " FIXME:
@ -750,7 +750,7 @@ Execute (Immediate loading):
Execute (Command-based on-demand loading): Execute (Command-based on-demand loading):
call plug#begin() call plug#begin()
Plug '$PWD/xxx', { 'on': 'XXX' } Plug '$PWD/temp/xxx', { 'on': 'XXX' }
call plug#end() call plug#end()
AssertEqual [], g:xxx AssertEqual [], g:xxx
@ -763,7 +763,7 @@ Execute (Command-based on-demand loading):
Execute (Filetype-based on-demand loading): Execute (Filetype-based on-demand loading):
call plug#begin() call plug#begin()
Plug '$PWD/xxx', { 'for': 'xxx' } Plug '$PWD/temp/xxx', { 'for': 'xxx' }
call plug#end() call plug#end()
AssertEqual ['xxx/ftdetect', 'xxx/after/ftdetect'], g:xxx AssertEqual ['xxx/ftdetect', 'xxx/after/ftdetect'], g:xxx
@ -778,10 +778,10 @@ Before:
********************************************************************** **********************************************************************
Execute (plug#helptags): Execute (plug#helptags):
silent! call delete(expand('$PWD/xxx/doc/tags')) silent! call delete(expand('$PWD/temp/xxx/doc/tags'))
Assert !filereadable(expand('$PWD/xxx/doc/tags')) Assert !filereadable(expand('$PWD/temp/xxx/doc/tags'))
AssertEqual 1, plug#helptags() AssertEqual 1, plug#helptags()
Assert filereadable(expand('$PWD/xxx/doc/tags')) Assert filereadable(expand('$PWD/temp/xxx/doc/tags'))
********************************************************************** **********************************************************************
~ Manual loading ~ Manual loading
@ -822,7 +822,7 @@ Execute (PlugStatus should not contain (not loaded)):
Execute (Load plugin from PlugStatus screen with L key in normal mode): Execute (Load plugin from PlugStatus screen with L key in normal mode):
call plug#begin() call plug#begin()
Plug '$PWD/yyy', { 'on': [] } Plug '$PWD/temp/yyy', { 'on': [] }
call plug#end() call plug#end()
PlugStatus PlugStatus
@ -836,8 +836,8 @@ Execute (Load plugin from PlugStatus screen with L key in normal mode):
Execute (Load plugin from PlugStatus screen with L key in visual mode): Execute (Load plugin from PlugStatus screen with L key in visual mode):
call plug#begin() call plug#begin()
Plug '$PWD/z1', { 'on': [] } Plug '$PWD/temp/z1', { 'on': [] }
Plug '$PWD/z2', { 'for': [] } Plug '$PWD/temp/z2', { 'for': [] }
call plug#end() call plug#end()
PlugStatus PlugStatus
@ -963,8 +963,8 @@ Execute (Plug directory with comma):
Execute (Strict load order): Execute (Strict load order):
let g:total_order = [] let g:total_order = []
call plug#begin() call plug#begin()
Plug '$PWD/xxx' Plug '$PWD/temp/xxx'
Plug '$PWD/yyy', { 'for': ['xxx'] } Plug '$PWD/temp/yyy', { 'for': ['xxx'] }
call plug#end() call plug#end()
call EnsureLoaded() call EnsureLoaded()
setf xxx setf xxx
@ -976,8 +976,8 @@ Execute (Strict load order):
let g:total_order = [] let g:total_order = []
call plug#begin() call plug#begin()
Plug '$PWD/xxx', { 'for': ['xxx'] } Plug '$PWD/temp/xxx', { 'for': ['xxx'] }
Plug '$PWD/yyy' Plug '$PWD/temp/yyy'
call plug#end() call plug#end()
call EnsureLoaded() call EnsureLoaded()
set rtp^=manually-prepended set rtp^=manually-prepended
@ -993,8 +993,8 @@ Execute (Strict load order):
let g:total_order = [] let g:total_order = []
call plug#begin() call plug#begin()
Plug '$PWD/xxx', { 'for': ['xxx'] } Plug '$PWD/temp/xxx', { 'for': ['xxx'] }
Plug '$PWD/yyy', { 'for': ['xxx'] } Plug '$PWD/temp/yyy', { 'for': ['xxx'] }
call plug#end() call plug#end()
call EnsureLoaded() call EnsureLoaded()
setf xxx setf xxx
@ -1004,6 +1004,23 @@ Execute (Strict load order):
Assert index(g:total_order, 'xxx/after/plugin') < index(g:total_order, 'yyy/after/plugin') Assert index(g:total_order, 'xxx/after/plugin') < index(g:total_order, 'yyy/after/plugin')
AssertEqual len + 2, len(split(&rtp, ',')) AssertEqual len + 2, len(split(&rtp, ','))
**********************************************************************
Execute (PlugClean should not try to remove unmanaged plugins inside g:plug_home):
call plug#begin('$PWD/temp')
Plug '$PWD/temp/xxx'
Plug '$PWD/temp/yyy'
call plug#end()
" Remove z1, z2
PlugClean!
AssertExpect '^- ', 2
AssertExpect 'Already clean', 0
PlugClean!
AssertExpect '^- ', 0
AssertExpect 'Already clean', 1
q
Execute (Cleanup): Execute (Cleanup):
silent! call system('rm -rf '.temp_plugged) silent! call system('rm -rf '.temp_plugged)
silent! call rename('fzf', 'fzf-staged') silent! call rename('fzf', 'fzf-staged')