mirror of
https://github.com/junegunn/vim-plug.git
synced 2024-12-19 18:47:29 -07:00
Merge remote-tracking branch 'root_branch/master' into respect_git_managed_tags
This commit is contained in:
commit
2383d89d7b
25
plug.vim
25
plug.vim
@ -193,6 +193,14 @@ function! s:ask_no_interrupt(...)
|
|||||||
endtry
|
endtry
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! s:lazy(plug, opt)
|
||||||
|
return has_key(a:plug, a:opt) &&
|
||||||
|
\ (empty(s:to_a(a:plug[a:opt])) ||
|
||||||
|
\ !isdirectory(a:plug.dir) ||
|
||||||
|
\ len(s:glob(s:rtp(a:plug), 'plugin')) ||
|
||||||
|
\ len(s:glob(s:rtp(a:plug), 'after/plugin')))
|
||||||
|
endfunction
|
||||||
|
|
||||||
function! plug#end()
|
function! plug#end()
|
||||||
if !exists('g:plugs')
|
if !exists('g:plugs')
|
||||||
return s:err('Call plug#begin() first')
|
return s:err('Call plug#begin() first')
|
||||||
@ -214,7 +222,7 @@ function! plug#end()
|
|||||||
continue
|
continue
|
||||||
endif
|
endif
|
||||||
let plug = g:plugs[name]
|
let plug = g:plugs[name]
|
||||||
if get(s:loaded, name, 0) || !has_key(plug, 'on') && !has_key(plug, 'for')
|
if get(s:loaded, name, 0) || !s:lazy(plug, 'on') && !s:lazy(plug, 'for')
|
||||||
let s:loaded[name] = 1
|
let s:loaded[name] = 1
|
||||||
continue
|
continue
|
||||||
endif
|
endif
|
||||||
@ -774,6 +782,9 @@ function! s:prepare(...)
|
|||||||
execute 'silent! unmap <buffer>' k
|
execute 'silent! unmap <buffer>' k
|
||||||
endfor
|
endfor
|
||||||
setlocal buftype=nofile bufhidden=wipe nobuflisted nolist noswapfile nowrap cursorline modifiable nospell
|
setlocal buftype=nofile bufhidden=wipe nobuflisted nolist noswapfile nowrap cursorline modifiable nospell
|
||||||
|
if exists('+colorcolumn')
|
||||||
|
setlocal colorcolumn=
|
||||||
|
endif
|
||||||
setf vim-plug
|
setf vim-plug
|
||||||
if exists('g:syntax_on')
|
if exists('g:syntax_on')
|
||||||
call s:syntax()
|
call s:syntax()
|
||||||
@ -1019,6 +1030,8 @@ function! s:update_impl(pull, force, args) abort
|
|||||||
let s:clone_opt .= ' -c core.eol=lf -c core.autocrlf=input'
|
let s:clone_opt .= ' -c core.eol=lf -c core.autocrlf=input'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
let s:submodule_opt = s:git_version_requirement(2, 8) ? ' --jobs='.threads : ''
|
||||||
|
|
||||||
" Python version requirement (>= 2.7)
|
" Python version requirement (>= 2.7)
|
||||||
if python && !has('python3') && !ruby && !use_job && s:update.threads > 1
|
if python && !has('python3') && !ruby && !use_job && s:update.threads > 1
|
||||||
redir => pyv
|
redir => pyv
|
||||||
@ -1110,7 +1123,7 @@ function! s:update_finish()
|
|||||||
if !v:shell_error && filereadable(spec.dir.'/.gitmodules') &&
|
if !v:shell_error && filereadable(spec.dir.'/.gitmodules') &&
|
||||||
\ (s:update.force || has_key(s:update.new, name) || s:is_updated(spec.dir))
|
\ (s:update.force || has_key(s:update.new, name) || s:is_updated(spec.dir))
|
||||||
call s:log4(name, 'Updating submodules. This may take a while.')
|
call s:log4(name, 'Updating submodules. This may take a while.')
|
||||||
let out .= s:bang('git submodule update --init --recursive 2>&1', spec.dir)
|
let out .= s:bang('git submodule update --init --recursive'.s:submodule_opt.' 2>&1', spec.dir)
|
||||||
endif
|
endif
|
||||||
let msg = s:format_message(v:shell_error ? 'x': '-', name, out)
|
let msg = s:format_message(v:shell_error ? 'x': '-', name, out)
|
||||||
if v:shell_error
|
if v:shell_error
|
||||||
@ -1329,7 +1342,7 @@ while 1 " Without TCO, Vim stack is bound to explode
|
|||||||
|
|
||||||
let name = keys(s:update.todo)[0]
|
let name = keys(s:update.todo)[0]
|
||||||
let spec = remove(s:update.todo, name)
|
let spec = remove(s:update.todo, name)
|
||||||
let new = !isdirectory(spec.dir)
|
let new = empty(globpath(spec.dir, '.git', 1))
|
||||||
|
|
||||||
call s:log(new ? '+' : '*', name, pull ? 'Updating ...' : 'Installing ...')
|
call s:log(new ? '+' : '*', name, pull ? 'Updating ...' : 'Installing ...')
|
||||||
redraw
|
redraw
|
||||||
@ -2435,7 +2448,11 @@ function! s:diff()
|
|||||||
call s:append_ul(2, origin ? 'Pending updates:' : 'Last update:')
|
call s:append_ul(2, origin ? 'Pending updates:' : 'Last update:')
|
||||||
for [k, v] in plugs
|
for [k, v] in plugs
|
||||||
let range = origin ? '..origin/'.v.branch : 'HEAD@{1}..'
|
let range = origin ? '..origin/'.v.branch : 'HEAD@{1}..'
|
||||||
let diff = s:system_chomp('git log --graph --color=never '.join(map(['--pretty=format:%x01%h%x01%d%x01%s%x01%cr', range], 's:shellesc(v:val)')), v.dir)
|
let cmd = 'git log --graph --color=never '.join(map(['--pretty=format:%x01%h%x01%d%x01%s%x01%cr', range], 's:shellesc(v:val)'))
|
||||||
|
if has_key(v, 'rtp')
|
||||||
|
let cmd .= ' -- '.s:shellesc(v.rtp)
|
||||||
|
endif
|
||||||
|
let diff = s:system_chomp(cmd, v.dir)
|
||||||
if !empty(diff)
|
if !empty(diff)
|
||||||
let ref = has_key(v, 'tag') ? (' (tag: '.v.tag.')') : has_key(v, 'commit') ? (' '.v.commit) : ''
|
let ref = has_key(v, 'tag') ? (' (tag: '.v.tag.')') : has_key(v, 'commit') ? (' '.v.commit) : ''
|
||||||
call append(5, extend(['', '- '.k.':'.ref], map(s:lines(diff), 's:format_git_log(v:val)')))
|
call append(5, extend(['', '- '.k.':'.ref], map(s:lines(diff), 's:format_git_log(v:val)')))
|
||||||
|
@ -41,6 +41,7 @@ Execute (#130 Proper cleanup of on-demand loading triggers):
|
|||||||
Plug 'junegunn/vim-emoji', { 'on': ['EmojiCommand', 'EmojiCommand2', '<Plug>(EmojiMapping)'] }
|
Plug 'junegunn/vim-emoji', { 'on': ['EmojiCommand', 'EmojiCommand2', '<Plug>(EmojiMapping)'] }
|
||||||
call plug#end()
|
call plug#end()
|
||||||
PlugInstall | q
|
PlugInstall | q
|
||||||
|
call mkdir(g:plugs['vim-emoji'].dir.'/after/plugin', 'p')
|
||||||
|
|
||||||
Assert exists(':EmojiCommand'), 'EmojiCommand not defined'
|
Assert exists(':EmojiCommand'), 'EmojiCommand not defined'
|
||||||
Assert exists(':EmojiCommand2'), 'EmojiCommand2 not defined'
|
Assert exists(':EmojiCommand2'), 'EmojiCommand2 not defined'
|
||||||
|
2
test/run
2
test/run
@ -87,7 +87,7 @@ DOC
|
|||||||
make_dirs z2/ z2
|
make_dirs z2/ z2
|
||||||
|
|
||||||
rm -rf "$PLUG_FIXTURES/ftplugin-msg"
|
rm -rf "$PLUG_FIXTURES/ftplugin-msg"
|
||||||
mkdir -p "$PLUG_FIXTURES/ftplugin-msg/ftplugin"
|
mkdir -p "$PLUG_FIXTURES"/ftplugin-msg/{plugin,ftplugin}
|
||||||
echo "echomsg 'ftplugin-c'" > "$PLUG_FIXTURES/ftplugin-msg/ftplugin/c.vim"
|
echo "echomsg 'ftplugin-c'" > "$PLUG_FIXTURES/ftplugin-msg/ftplugin/c.vim"
|
||||||
echo "echomsg 'ftplugin-java'" > "$PLUG_FIXTURES/ftplugin-msg/ftplugin/java.vim"
|
echo "echomsg 'ftplugin-java'" > "$PLUG_FIXTURES/ftplugin-msg/ftplugin/java.vim"
|
||||||
|
|
||||||
|
@ -537,6 +537,51 @@ Execute (PlugDiff):
|
|||||||
Assert !empty(mapcheck("\<cr>"))
|
Assert !empty(mapcheck("\<cr>"))
|
||||||
q
|
q
|
||||||
|
|
||||||
|
Execute (Do not show diff for commits outside of rtp):
|
||||||
|
call plug#begin()
|
||||||
|
call plug#end()
|
||||||
|
PlugClean!
|
||||||
|
|
||||||
|
call plug#begin()
|
||||||
|
Plug 'file://'.expand('$PLUG_FIXTURES').'/xxx'
|
||||||
|
Plug 'file://'.expand('$PLUG_FIXTURES').'/yyy', { 'rtp': 'rtp' }
|
||||||
|
call plug#end()
|
||||||
|
PlugInstall
|
||||||
|
Log getline(1, '$')
|
||||||
|
|
||||||
|
call system('cd "$PLUG_FIXTURES/xxx" && git commit --allow-empty -m update-xxx && git tag -f xxx')
|
||||||
|
call system('cd "$PLUG_FIXTURES/yyy" && git commit --allow-empty -m update-yyy && git tag -f yyy')
|
||||||
|
|
||||||
|
let g:plugs.yyy.tag = 'yyy'
|
||||||
|
PlugUpdate
|
||||||
|
Log getline(1, '$')
|
||||||
|
|
||||||
|
PlugDiff
|
||||||
|
" 1 plugin(s) updated.
|
||||||
|
" [==]
|
||||||
|
"
|
||||||
|
" Last update:
|
||||||
|
" ------------
|
||||||
|
"
|
||||||
|
" - xxx:
|
||||||
|
" * 7faa9b2 update-xxx (0 seconds ago)
|
||||||
|
"
|
||||||
|
" Pending updates:
|
||||||
|
" ----------------
|
||||||
|
"
|
||||||
|
" N/A
|
||||||
|
"
|
||||||
|
Log getline(1, '$')
|
||||||
|
AssertEqual 14, line('$')
|
||||||
|
AssertEqual '1 plugin(s) updated.', getline(1)
|
||||||
|
AssertEqual '[==]', getline(2)
|
||||||
|
AssertEqual 'Last update:', getline(4)
|
||||||
|
AssertEqual '- xxx:', getline(7)
|
||||||
|
Assert !empty(mapcheck('o'))
|
||||||
|
Assert !empty(mapcheck('X'))
|
||||||
|
Assert !empty(mapcheck("\<cr>"))
|
||||||
|
q
|
||||||
|
|
||||||
**********************************************************************
|
**********************************************************************
|
||||||
~ On-demand loading / Partial installation/update ~
|
~ On-demand loading / Partial installation/update ~
|
||||||
**********************************************************************
|
**********************************************************************
|
||||||
@ -1511,7 +1556,7 @@ Execute (Commit hash support):
|
|||||||
Log getline(1, '$')
|
Log getline(1, '$')
|
||||||
AssertEqual 'x goyo.vim:', getline(5)
|
AssertEqual 'x goyo.vim:', getline(5)
|
||||||
AssertEqual ' fatal: invalid reference: ffffffff', getline(6)
|
AssertEqual ' fatal: invalid reference: ffffffff', getline(6)
|
||||||
AssertEqual 0, stridx(getline(7), '- vim-emoji: HEAD is now at 9db7fcf...')
|
AssertEqual 0, stridx(getline(7), '- vim-emoji: HEAD is now at 9db7fcf')
|
||||||
|
|
||||||
let hash = system(printf('cd %s && git rev-parse HEAD', g:plugs['vim-emoji'].dir))[:-2]
|
let hash = system(printf('cd %s && git rev-parse HEAD', g:plugs['vim-emoji'].dir))[:-2]
|
||||||
AssertEqual '9db7fcfee0d90dafdbcb7a32090c0a9085eb054a', hash
|
AssertEqual '9db7fcfee0d90dafdbcb7a32090c0a9085eb054a', hash
|
||||||
@ -1638,3 +1683,15 @@ Execute (#532 - Reuse plug window):
|
|||||||
AssertEqual 2, winnr(), 'Current window is #2 after PlugStatus (but is '.winnr().')'
|
AssertEqual 2, winnr(), 'Current window is #2 after PlugStatus (but is '.winnr().')'
|
||||||
AssertEqual 2, winnr('$'), 'Three windows after PlugStatus (but got '.winnr('$').')'
|
AssertEqual 2, winnr('$'), 'Three windows after PlugStatus (but got '.winnr('$').')'
|
||||||
q
|
q
|
||||||
|
|
||||||
|
Execute (#766 - Allow cloning into an empty directory):
|
||||||
|
let d = '/tmp/vim-plug-test/goyo-already'
|
||||||
|
call system('rm -rf ' . d)
|
||||||
|
call mkdir(d)
|
||||||
|
call plug#begin()
|
||||||
|
Plug 'junegunn/goyo.vim', { 'dir': d }
|
||||||
|
call plug#end()
|
||||||
|
PlugInstall
|
||||||
|
AssertExpect! '[=]', 1
|
||||||
|
q
|
||||||
|
unlet d
|
||||||
|
Loading…
Reference in New Issue
Block a user