Merge branch 'hori-ryota-feature/fixed-bug-of-on-demand-loading'

Close #236
This commit is contained in:
Junegunn Choi 2015-05-28 14:45:59 +09:00
commit 099057da65
4 changed files with 51 additions and 1 deletions

View File

@ -440,7 +440,7 @@ function! s:add(repo, ...)
call add(g:plugs_order, name)
endif
let g:plugs[name] = spec
let s:loaded[name] = 0
let s:loaded[name] = get(s:loaded, name, 0)
catch
return s:err(v:exception)
endtry

View File

@ -34,6 +34,7 @@ Execute (#130 Proper cleanup of on-demand loading triggers):
augroup END
" Cleared on command
call ReloadPlug()
call plug#begin('$TMPDIR/plugged')
Plug 'junegunn/vim-emoji', { 'on': ['EmojiCommand', 'EmojiCommand2', '<Plug>(EmojiMapping)'] }
call plug#end()
@ -50,6 +51,7 @@ Execute (#130 Proper cleanup of on-demand loading triggers):
Assert empty(mapcheck('<Plug>(EmojiMapping)')), '<Plug>(EmojiMapping) defined'
" Cleared on FileType
call ReloadPlug()
call plug#begin('$TMPDIR/plugged')
Plug 'junegunn/vim-emoji', { 'on': ['EmojiCommandExtra', '<Plug>(EmojiMappingExtra)'], 'for': ['emoji'] }
call plug#end()
@ -189,6 +191,7 @@ Execute (#145: Merging on-demand loading triggers - cmd):
Execute (#145: Merging on-demand loading triggers - map):
unlet! g:xxx g:yyy
call ReloadPlug()
call plug#begin()
Plug '$PLUG_FIXTURES/xxx', { 'on': '<Plug>(xxx)' }
Plug '$PLUG_FIXTURES/yyy', { 'on': ['<Plug>(xxx)' ,'<Plug>(yyy)' ] }
@ -241,3 +244,26 @@ Execute (#184: Duplicate entries in &rtp):
Log &rtp
AssertEqual 3, len(filter(split(&rtp, ','), 'stridx(v:val, "plugged") >= 0'))
**********************************************************************
Execute (#236: Plugin removed from &rtp when .vimrc is reloaded):
unlet! g:loaded_easy_align_plugin
silent! delc EasyAlign
call ReloadPlug()
call plug#begin('$TMPDIR/plugged')
Plug 'junegunn/vim-easy-align', { 'on': 'EasyAlign' }
call plug#end()
PlugInstall | q
Assert &rtp !~ '/vim-easy-align', 'Plugin should not be in &rtp'
%EasyAlign=
Assert &rtp =~ '/vim-easy-align', 'Plugin should be in &rtp'
call plug#begin('$TMPDIR/plugged')
Plug 'junegunn/vim-easy-align', { 'on': 'EasyAlign' }
call plug#end()
redir => out
silent command EasyAlign
redir END
Assert &rtp =~ '/vim-easy-align', 'Plugin should still be in &rtp'

View File

@ -39,6 +39,19 @@ Execute (Initialize test environment):
endif
endfunction
" Reload vim-plug to reset s:-variables
function! ReloadPlug()
let tmp = tempname()
try
call writefile(readfile(globpath(&rtp, 'autoload/plug.vim')), tmp)
unlet g:loaded_plug
execute 'source' tmp
let &rtp = g:basertp
finally
call delete(tmp)
endtry
endfunction
Execute (Print Interpreter Version):
redir => out
if has('ruby')
@ -66,6 +79,7 @@ Execute (Cleanup):
silent! delf AssertExpect
silent! delf PlugUpdated
silent! delf EnsureLoaded
silent! delf ReloadPlug
silent! delc AssertExpect
silent! unmap /
silent! unmap ?

View File

@ -354,6 +354,7 @@ Execute (Reuse Plug window in another tab):
**********************************************************************
Execute (Trying to execute on-demand commands when plugin is not installed):
call ReloadPlug()
call plug#begin()
Plug 'junegunn/vim-easy-align', { 'on': ['EasyAlign', 'LiveEasyAlign'] }
call plug#end()
@ -366,6 +367,7 @@ Execute (Trying to execute on-demand commands when plugin is not installed):
Assert !exists(':LiveEasyAlign')
Execute (New set of plugins):
call ReloadPlug()
call plug#begin()
Plug 'junegunn/vim-fnr'
Plug 'junegunn/vim-pseudocl'
@ -778,6 +780,7 @@ Before (Clear global vars):
set rtp-=$PLUG_FIXTURES/xxx/after
Execute (Immediate loading):
call ReloadPlug()
call plug#begin()
Plug '$PLUG_FIXTURES/xxx'
call plug#end()
@ -792,6 +795,7 @@ Execute (Immediate loading):
endif
Execute (Command-based on-demand loading):
call ReloadPlug()
call plug#begin()
Plug '$PLUG_FIXTURES/xxx', { 'on': 'XXX' }
call plug#end()
@ -805,6 +809,7 @@ Execute (Command-based on-demand loading):
AssertEqual ['xxx/ftdetect', 'xxx/after/ftdetect', 'xxx/plugin', 'xxx/after/plugin', 'xxx/ftplugin', 'xxx/after/ftplugin', 'xxx/indent', 'xxx/after/indent', 'xxx/syntax', 'xxx/after/syntax'], g:xxx
Execute (Filetype-based on-demand loading):
call ReloadPlug()
call plug#begin()
Plug '$PLUG_FIXTURES/xxx', { 'for': 'xxx' }
call plug#end()
@ -1006,6 +1011,7 @@ Execute (Plug directory with comma):
**********************************************************************
Execute (Strict load order):
let g:total_order = []
call ReloadPlug()
call plug#begin()
Plug '$PLUG_FIXTURES/xxx'
Plug '$PLUG_FIXTURES/yyy', { 'for': ['xxx'] }
@ -1019,6 +1025,7 @@ Execute (Strict load order):
let len = len(split(&rtp, ','))
let g:total_order = []
call ReloadPlug()
call plug#begin()
Plug '$PLUG_FIXTURES/xxx', { 'for': ['xxx'] }
Plug '$PLUG_FIXTURES/yyy'
@ -1036,6 +1043,9 @@ Execute (Strict load order):
AssertEqual len + 2, len(split(&rtp, ','))
let g:total_order = []
call ReloadPlug()
set rtp^=manually-prepended
set rtp+=manually-appended
call plug#begin()
Plug '$PLUG_FIXTURES/xxx', { 'for': ['xxx'] }
Plug '$PLUG_FIXTURES/yyy', { 'for': ['xxx'] }