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. 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()
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
27
plug.vim
27
plug.vim
|
@ -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
|
||||||
|
|
19
test/run
19
test/run
|
@ -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
|
||||||
|
|
|
@ -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):
|
||||||
|
|
Loading…
Reference in New Issue
Block a user