Merge branch 'master' into travis-sudo-false

This commit is contained in:
Junegunn Choi 2017-01-01 11:53:31 +09:00 committed by GitHub
commit 85bdee1fb7
4 changed files with 77 additions and 26 deletions

View File

@ -65,6 +65,8 @@ Add a vim-plug section to your `~/.vimrc` (or `~/.config/nvim/init.vim` for Neov
1. Begin the section with `call plug#begin()` 1. Begin the section with `call plug#begin()`
1. List the plugins with `Plug` commands 1. List the plugins with `Plug` commands
1. `call plug#end()` to update `&runtimepath` and initialize plugin system 1. `call plug#end()` to update `&runtimepath` and initialize plugin system
- Automatically executes `filetype plugin indent on` and `syntax enable`.
You can revert the settings after the call. e.g. `filetype indent off`, `syntax off`, etc.
#### Example #### Example
@ -80,7 +82,7 @@ Plug 'junegunn/vim-easy-align'
" Any valid git URL is allowed " Any valid git URL is allowed
Plug 'https://github.com/junegunn/vim-github-dashboard.git' Plug 'https://github.com/junegunn/vim-github-dashboard.git'
" Group dependencies, vim-snippets depends on ultisnips " Multiple Plug commands can be written in a single line using | separators
Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets' Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets'
" On-demand loading " On-demand loading
@ -102,7 +104,7 @@ Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
" Unmanaged plugin (manually installed and updated) " Unmanaged plugin (manually installed and updated)
Plug '~/my-prototype-plugin' Plug '~/my-prototype-plugin'
" Add plugins to &runtimepath " Initialize plugin system
call plug#end() call plug#end()
``` ```

View File

@ -18,7 +18,7 @@
" " Any valid git URL is allowed " " Any valid git URL is allowed
" Plug 'https://github.com/junegunn/vim-github-dashboard.git' " Plug 'https://github.com/junegunn/vim-github-dashboard.git'
" "
" " Group dependencies, vim-snippets depends on ultisnips " " Multiple Plug commands can be written in a single line using | separators
" Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets' " Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets'
" "
" " On-demand loading " " On-demand loading
@ -40,7 +40,7 @@
" " Unmanaged plugin (manually installed and updated) " " Unmanaged plugin (manually installed and updated)
" Plug '~/my-prototype-plugin' " Plug '~/my-prototype-plugin'
" "
" " Add plugins to &runtimepath " " Initialize plugin system
" call plug#end() " call plug#end()
" "
" Then reload .vimrc and :PlugInstall to install plugins. " Then reload .vimrc and :PlugInstall to install plugins.
@ -955,7 +955,7 @@ function! s:update_impl(pull, force, args) abort
let use_job = s:nvim || s:vim8 let use_job = s:nvim || s:vim8
let python = (has('python') || has('python3')) && !use_job let python = (has('python') || has('python3')) && !use_job
let ruby = has('ruby') && !use_job && (v:version >= 703 || v:version == 702 && has('patch374')) && !(s:is_win && has('gui_running')) && s:check_ruby() let ruby = has('ruby') && !use_job && (v:version >= 703 || v:version == 702 && has('patch374')) && !(s:is_win && has('gui_running')) && threads > 1 && s:check_ruby()
let s:update = { let s:update = {
\ 'start': reltime(), \ 'start': reltime(),
@ -1153,7 +1153,7 @@ function! s:job_cb(fn, job, ch, data)
call call(a:fn, [a:job, a:data]) call call(a:fn, [a:job, a:data])
endfunction endfunction
function! s:nvim_cb(job_id, data, event) abort function! s:nvim_cb(job_id, data, event) dict abort
return a:event == 'stdout' ? return a:event == 'stdout' ?
\ s:job_cb('s:job_out_cb', self, 0, join(a:data, "\n")) : \ s:job_cb('s:job_out_cb', self, 0, join(a:data, "\n")) :
\ s:job_cb('s:job_exit_cb', self, 0, a:data) \ s:job_cb('s:job_exit_cb', self, 0, a:data)
@ -2013,10 +2013,21 @@ function! s:git_validate(spec, check_branch)
\ branch, a:spec.branch) \ branch, a:spec.branch)
endif endif
if empty(err) if empty(err)
let commits = len(s:lines(s:system(printf('git rev-list origin/%s..HEAD', a:spec.branch), a:spec.dir))) let [ahead, behind] = split(s:lastline(s:system(printf(
if !v:shell_error && commits \ 'git rev-list --count --left-right HEAD...origin/%s',
let err = join([printf('Diverged from origin/%s by %d commit(s).', a:spec.branch, commits), \ a:spec.branch), a:spec.dir)), '\t')
\ 'Reinstall after PlugClean.'], "\n") if !v:shell_error && ahead
if behind
" Only mention PlugClean if diverged, otherwise it's likely to be
" pushable (and probably not that messed up).
let err = printf(
\ "Diverged from origin/%s (%d commit(s) ahead and %d commit(s) behind!\n"
\ .'Backup local changes and run PlugClean and PlugUpdate to reinstall it.', a:spec.branch, ahead, behind)
else
let err = printf("Ahead of origin/%s by %d commit(s).\n"
\ .'Cannot update until local changes are pushed.',
\ a:spec.branch, ahead)
endif
endif endif
endif endif
endif endif

View File

@ -1,6 +1,10 @@
#!/bin/bash #!/bin/bash
cd $(dirname "${BASH_SOURCE[0]}") # Privileged mode, ignores $CDPATH etc.
set -p
set -eu
cd "$(dirname "${BASH_SOURCE[0]}")"
export BASE="$PWD" export BASE="$PWD"
export PLUG_SRC="$PWD/../plug.vim" export PLUG_SRC="$PWD/../plug.vim"
@ -16,8 +20,8 @@ set shell=/bin/bash
VIMRC VIMRC
clone() { clone() {
if [ ! -d $2 ]; then if [ ! -d "$2" ]; then
git clone $1 $2 git clone "$1" "$2"
fi fi
} }
@ -44,8 +48,8 @@ make_dirs() (
cd "$PLUG_FIXTURES/$1" cd "$PLUG_FIXTURES/$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
cat > $d/xxx.vim << EOF cat > "$d/xxx.vim" << EOF
" echom expand('<sfile>') " echom expand('<sfile>')
let g:total_order = get(g:, 'total_order', []) let g:total_order = get(g:, 'total_order', [])
let g:$2 = get(g:, '$2', []) let g:$2 = get(g:, '$2', [])
@ -97,7 +101,7 @@ DOC
select_vim() { select_vim() {
local vim=/usr/bin/vim local vim=/usr/bin/vim
if [ -n "$DEPS" ] && [ -e "${DEPS}/bin/vim" ]; then if [ -n "${DEPS:-}" ] && [ -e "${DEPS}/bin/vim" ]; then
vim="${DEPS}/bin/vim" vim="${DEPS}/bin/vim"
elif [ -e "/usr/local/bin/vim" ]; then elif [ -e "/usr/local/bin/vim" ]; then
vim=/usr/local/bin/vim vim=/usr/local/bin/vim
@ -111,7 +115,8 @@ prepare
git --version git --version
vim=$(select_vim) vim=$(select_vim)
echo "Selected Vim: $VIM" echo "Selected Vim: $VIM"
if [ "$1" = '!' ]; then
if [ "${1:-}" = '!' ]; then
$vim -Nu $TEMP/mini-vimrc -c 'Vader! test.vader' > /dev/null && $vim -Nu $TEMP/mini-vimrc -c 'Vader! test.vader' > /dev/null &&
prepare && prepare &&
$vim -Nu $TEMP/mini-vimrc -c 'let g:plug_threads = 1 | Vader! test.vader' > /dev/null $vim -Nu $TEMP/mini-vimrc -c 'let g:plug_threads = 1 | Vader! test.vader' > /dev/null

View File

@ -212,7 +212,7 @@ Expect:
[==] [==]
x seoul256.vim: x seoul256.vim:
Execute (Corrected the URI but diverged from master): Execute (Corrected the URI but ahead of upstream):
call plug#begin() call plug#begin()
Plug 'junegunn/seoul256.vim' Plug 'junegunn/seoul256.vim'
Plug 'file:///tmp/vim-plug-test/jg/vim-emoji' Plug 'file:///tmp/vim-plug-test/jg/vim-emoji'
@ -223,8 +223,8 @@ Execute (Corrected the URI but diverged from master):
call PlugStatusSorted() call PlugStatusSorted()
Expect: Expect:
Diverged from origin/master by 3 commit(s). Ahead of origin/master by 3 commit(s).
Reinstall after PlugClean. Cannot update until local changes are pushed.
- vim-emoji: OK - vim-emoji: OK
Finished. 1 error(s). Finished. 1 error(s).
[==] [==]
@ -237,11 +237,44 @@ Expect:
# q # q
# PGdd # PGdd
Execute (PlugClean! to remove seoul256.vim): Execute (PlugClean! keeps seoul256.vim):
PlugClean! PlugClean!
" Three removed, emoji left " Two removed, emoji and seoul256 left
AssertEqual 'Removed 3 directories.', getline(4) AssertEqual 'Removed 2 directories.', getline(4)
AssertExpect '^\~ ', 3 AssertExpect '^\~ ', 2
AssertExpect 'Diverged', 0
Assert !empty(globpath(&rtp, 'colors/seoul256.vim'))
Assert !empty(globpath(&rtp, 'autoload/emoji.vim'))
q
Execute (Make seoul256 to be diverged):
call plug#begin()
Plug 'junegunn/seoul256.vim'
Plug 'file:///tmp/vim-plug-test/jg/vim-emoji'
call plug#end()
call system(printf(join([
\ 'cd "%s"',
\ 'git fetch --unshallow',
\ 'git reset "@{u}~1"',
\ 'git commit --allow-empty -m "diverged1"',
\ 'git commit --allow-empty -m "diverged2"'], ' && '),
\ g:plugs['seoul256.vim'].dir))
Assert empty(v:shell_error), 'Got shell error: '.v:shell_error
call PlugStatusSorted()
Expect:
Backup local changes and run PlugClean and PlugUpdate to reinstall it.
Diverged from origin/master (2 commit(s) ahead and 1 commit(s) behind!
- vim-emoji: OK
Finished. 1 error(s).
[==]
x seoul256.vim:
Execute (PlugClean! removes seoul256.vim):
PlugClean!
" One removed, emoji left
AssertEqual 'Removed 1 directories.', getline(4)
AssertExpect '^\~ ', 1
AssertExpect 'Diverged', 1 AssertExpect 'Diverged', 1
Assert empty(globpath(&rtp, 'colors/seoul256.vim')) Assert empty(globpath(&rtp, 'colors/seoul256.vim'))
Assert !empty(globpath(&rtp, 'autoload/emoji.vim')) Assert !empty(globpath(&rtp, 'autoload/emoji.vim'))
@ -270,8 +303,8 @@ Execute (PlugClean! to remove vim-emoji):
PlugClean! PlugClean!
AssertExpect '^\~ ', 1 AssertExpect '^\~ ', 1
AssertEqual 'Removed 1 directories.', getline(4) AssertEqual 'Removed 1 directories.', getline(4)
Assert empty(globpath(&rtp, 'colors/seoul256.vim')) Assert empty(globpath(&rtp, 'colors/seoul256.vim')), 'seoul256.vim was removed'
Assert empty(globpath(&rtp, 'autoload/emoji.vim')) Assert empty(globpath(&rtp, 'autoload/emoji.vim')), 'emoji was removed'
q q
Execute (PlugUpdate to install both again): Execute (PlugUpdate to install both again):