Merge branch 'master' into travis-sudo-false
This commit is contained in:
commit
85bdee1fb7
|
@ -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. List the plugins with `Plug` commands
|
||||
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
|
||||
|
||||
|
@ -80,7 +82,7 @@ Plug 'junegunn/vim-easy-align'
|
|||
" Any valid git URL is allowed
|
||||
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'
|
||||
|
||||
" On-demand loading
|
||||
|
@ -102,7 +104,7 @@ Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
|
|||
" Unmanaged plugin (manually installed and updated)
|
||||
Plug '~/my-prototype-plugin'
|
||||
|
||||
" Add plugins to &runtimepath
|
||||
" Initialize plugin system
|
||||
call plug#end()
|
||||
```
|
||||
|
||||
|
|
27
plug.vim
27
plug.vim
|
@ -18,7 +18,7 @@
|
|||
" " Any valid git URL is allowed
|
||||
" 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'
|
||||
"
|
||||
" " On-demand loading
|
||||
|
@ -40,7 +40,7 @@
|
|||
" " Unmanaged plugin (manually installed and updated)
|
||||
" Plug '~/my-prototype-plugin'
|
||||
"
|
||||
" " Add plugins to &runtimepath
|
||||
" " Initialize plugin system
|
||||
" call plug#end()
|
||||
"
|
||||
" 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 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 = {
|
||||
\ 'start': reltime(),
|
||||
|
@ -1153,7 +1153,7 @@ function! s:job_cb(fn, job, ch, data)
|
|||
call call(a:fn, [a:job, a:data])
|
||||
endfunction
|
||||
|
||||
function! s:nvim_cb(job_id, data, event) abort
|
||||
function! s:nvim_cb(job_id, data, event) dict abort
|
||||
return a:event == 'stdout' ?
|
||||
\ s:job_cb('s:job_out_cb', self, 0, join(a:data, "\n")) :
|
||||
\ 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)
|
||||
endif
|
||||
if empty(err)
|
||||
let commits = len(s:lines(s:system(printf('git rev-list origin/%s..HEAD', a:spec.branch), a:spec.dir)))
|
||||
if !v:shell_error && commits
|
||||
let err = join([printf('Diverged from origin/%s by %d commit(s).', a:spec.branch, commits),
|
||||
\ 'Reinstall after PlugClean.'], "\n")
|
||||
let [ahead, behind] = split(s:lastline(s:system(printf(
|
||||
\ 'git rev-list --count --left-right HEAD...origin/%s',
|
||||
\ a:spec.branch), a:spec.dir)), '\t')
|
||||
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
|
||||
|
|
19
test/run
19
test/run
|
@ -1,6 +1,10 @@
|
|||
#!/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 PLUG_SRC="$PWD/../plug.vim"
|
||||
|
@ -16,8 +20,8 @@ set shell=/bin/bash
|
|||
VIMRC
|
||||
|
||||
clone() {
|
||||
if [ ! -d $2 ]; then
|
||||
git clone $1 $2
|
||||
if [ ! -d "$2" ]; then
|
||||
git clone "$1" "$2"
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -44,8 +48,8 @@ make_dirs() (
|
|||
cd "$PLUG_FIXTURES/$1"
|
||||
mkdir -p autoload colors ftdetect ftplugin indent plugin syntax
|
||||
for d in *; do
|
||||
[ -d $d ] || continue
|
||||
cat > $d/xxx.vim << EOF
|
||||
[ -d "$d" ] || continue
|
||||
cat > "$d/xxx.vim" << EOF
|
||||
" echom expand('<sfile>')
|
||||
let g:total_order = get(g:, 'total_order', [])
|
||||
let g:$2 = get(g:, '$2', [])
|
||||
|
@ -97,7 +101,7 @@ DOC
|
|||
|
||||
select_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"
|
||||
elif [ -e "/usr/local/bin/vim" ]; then
|
||||
vim=/usr/local/bin/vim
|
||||
|
@ -111,7 +115,8 @@ prepare
|
|||
git --version
|
||||
vim=$(select_vim)
|
||||
echo "Selected Vim: $VIM"
|
||||
if [ "$1" = '!' ]; then
|
||||
|
||||
if [ "${1:-}" = '!' ]; then
|
||||
$vim -Nu $TEMP/mini-vimrc -c 'Vader! test.vader' > /dev/null &&
|
||||
prepare &&
|
||||
$vim -Nu $TEMP/mini-vimrc -c 'let g:plug_threads = 1 | Vader! test.vader' > /dev/null
|
||||
|
|
|
@ -212,7 +212,7 @@ Expect:
|
|||
[==]
|
||||
x seoul256.vim:
|
||||
|
||||
Execute (Corrected the URI but diverged from master):
|
||||
Execute (Corrected the URI but ahead of upstream):
|
||||
call plug#begin()
|
||||
Plug 'junegunn/seoul256.vim'
|
||||
Plug 'file:///tmp/vim-plug-test/jg/vim-emoji'
|
||||
|
@ -223,8 +223,8 @@ Execute (Corrected the URI but diverged from master):
|
|||
call PlugStatusSorted()
|
||||
|
||||
Expect:
|
||||
Diverged from origin/master by 3 commit(s).
|
||||
Reinstall after PlugClean.
|
||||
Ahead of origin/master by 3 commit(s).
|
||||
Cannot update until local changes are pushed.
|
||||
- vim-emoji: OK
|
||||
Finished. 1 error(s).
|
||||
[==]
|
||||
|
@ -237,11 +237,44 @@ Expect:
|
|||
# q
|
||||
# PGdd
|
||||
|
||||
Execute (PlugClean! to remove seoul256.vim):
|
||||
Execute (PlugClean! keeps seoul256.vim):
|
||||
PlugClean!
|
||||
" Three removed, emoji left
|
||||
AssertEqual 'Removed 3 directories.', getline(4)
|
||||
AssertExpect '^\~ ', 3
|
||||
" Two removed, emoji and seoul256 left
|
||||
AssertEqual 'Removed 2 directories.', getline(4)
|
||||
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
|
||||
Assert empty(globpath(&rtp, 'colors/seoul256.vim'))
|
||||
Assert !empty(globpath(&rtp, 'autoload/emoji.vim'))
|
||||
|
@ -270,8 +303,8 @@ Execute (PlugClean! to remove vim-emoji):
|
|||
PlugClean!
|
||||
AssertExpect '^\~ ', 1
|
||||
AssertEqual 'Removed 1 directories.', getline(4)
|
||||
Assert empty(globpath(&rtp, 'colors/seoul256.vim'))
|
||||
Assert empty(globpath(&rtp, 'autoload/emoji.vim'))
|
||||
Assert empty(globpath(&rtp, 'colors/seoul256.vim')), 'seoul256.vim was removed'
|
||||
Assert empty(globpath(&rtp, 'autoload/emoji.vim')), 'emoji was removed'
|
||||
q
|
||||
|
||||
Execute (PlugUpdate to install both again):
|
||||
|
|
Loading…
Reference in New Issue
Block a user