Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vimrc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Murukesh Mohanan
vimrc
Commits
71aaa924
Commit
71aaa924
authored
Nov 26, 2017
by
Murukesh Mohanan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
vim-plug update
parent
94e6a889
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
66 additions
and
20 deletions
+66
-20
autoload/plug.vim
autoload/plug.vim
+66
-20
No files found.
autoload/plug.vim
View file @
71aaa924
...
...
@@ -605,7 +605,7 @@ function! plug#helptags()
return
s:err
(
'plug#begin was not called'
)
endif
for
spec
in
values
(
g:plugs
)
let
docd
=
join
([
s
pec
.
dir
,
'doc'
],
'/'
)
let
docd
=
join
([
s
:rtp
(
spec
)
,
'doc'
],
'/'
)
if
isdirectory
(
docd
)
silent
!
execute
'helptags'
s:esc
(
docd
)
endif
...
...
@@ -782,8 +782,10 @@ function! s:assign_name()
endfunction
function
!
s:chsh
(
swap
)
let
prev
=
[
&
shell
,
&shellredir
]
if
!
s:is_win
&&
a:swap
let
prev
=
[
&
shell
,
&shellcmdflag
,
&shellredir
]
if
s:is_win
set
shell
=
cmd
.
exe shellcmdflag
=
/
c
shellredir
=>
%s\
2
>
&
1
elseif
a:swap
set
shell
=
sh
shellredir
=>
%s\
2
>
&
1
endif
return
prev
...
...
@@ -791,15 +793,23 @@ endfunction
function
!
s:bang
(
cmd
,
...)
try
let
[
sh
,
shrd
]
=
s:chsh
(
a:0
)
let
[
sh
,
sh
ellcmdflag
,
sh
rd
]
=
s:chsh
(
a:0
)
" FIXME: Escaping is incomplete. We could use shellescape with eval,
" but it won't work on Windows.
let
cmd
=
a:0
?
s:with_cd
(
a:cmd
,
a:1
)
:
a:cmd
let
g:_plug_bang
=
'!'
.
escape
(
cmd
,
'#!%'
)
if
s:is_win
let
batchfile
=
tempname
().
'.bat'
call
writefile
([
'@echo off'
,
cmd
],
batchfile
)
let
cmd
=
batchfile
endif
let
g:_plug_bang
=
(
s:is_win
&& has
(
'gui_running'
)
?
'silent '
:
''
).
'!'
.
escape
(
cmd
,
'#!%'
)
execute
"normal! :execute g:_plug_bang\<cr>\<cr>"
finally
unlet
g:_plug_bang
let
[
&
shell
,
&shellredir
]
=
[
sh
,
shrd
]
let
[
&
shell
,
&shellcmdflag
,
&shellredir
]
=
[
sh
,
shellcmdflag
,
shrd
]
if
s:is_win
call
delete
(
batchfile
)
endif
endtry
return
v
:
shell_error ?
'Exit status: '
.
v
:
shell_error
:
''
endfunction
...
...
@@ -1181,10 +1191,15 @@ endfunction
function
!
s:spawn
(
name
,
cmd
,
opts
)
let
job
=
{
'name'
:
a:name
,
'running'
:
1
,
'error'
:
0
,
'lines'
:
[
''
],
\
'batchfile'
:
(
s:is_win
&&
(
s:nvim
||
s:vim8
))
? tempname
().
'.bat'
:
''
,
\
'new'
:
get
(
a:opts
,
'new'
,
0
)
}
let
s:jobs
[
a:name
]
=
job
let
argv
=
add
(
s:is_win
?
[
'cmd'
,
'/c'
]
:
[
'sh'
,
'-c'
],
\
has_key
(
a:opts
,
'dir'
)
?
s:with_cd
(
a:cmd
,
a:opts
.
dir
)
:
a:cmd
)
let
cmd
=
has_key
(
a:opts
,
'dir'
)
?
s:with_cd
(
a:cmd
,
a:opts
.
dir
)
:
a:cmd
if
!
empty
(
job
.
batchfile
)
call
writefile
([
'@echo off'
,
cmd
],
job
.
batchfile
)
let
cmd
=
job
.
batchfile
endif
let
argv
=
add
(
s:is_win
?
[
'cmd'
,
'/c'
]
:
[
'sh'
,
'-c'
],
cmd
)
if
s:nvim
call
extend
(
job
,
{
...
...
@@ -1214,8 +1229,7 @@ function! s:spawn(name, cmd, opts)
let
job
.
lines
=
[
'Failed to start job'
]
endif
else
let
params
=
has_key
(
a:opts
,
'dir'
)
?
[
a:cmd
,
a:opts
.
dir
]
:
[
a:cmd
]
let
job
.
lines
=
s:lines
(
call
(
's:system'
,
params
))
let
job
.
lines
=
s:lines
(
call
(
's:system'
,
[
cmd
]))
let
job
.
error
=
v
:
shell_error
!=
0
let
job
.
running
=
0
endif
...
...
@@ -1235,6 +1249,9 @@ function! s:reap(name)
call
s:log
(
bullet
,
a:name
,
empty
(
result
)
?
'OK'
:
result
)
call
s:bar
()
if
has_key
(
job
,
'batchfile'
)
&&
!
empty
(
job
.
batchfile
)
call
delete
(
job
.
batchfile
)
endif
call
remove
(
s:jobs
,
a:name
)
endfunction
...
...
@@ -1952,8 +1969,19 @@ function! s:update_ruby()
EOF
endfunction
function
!
s:shellesc_cmd
(
arg
)
let
escaped
=
substitute
(
a:arg
,
'[&|<>()@^]'
,
'^&'
,
'g'
)
let
escaped
=
substitute
(
escaped
,
'%'
,
'%%'
,
'g'
)
let
escaped
=
substitute
(
escaped
,
'"'
,
'\\^&'
,
'g'
)
let
escaped
=
substitute
(
escaped
,
'\(\\\+\)\(\\^\)'
,
'\1\1\2'
,
'g'
)
return
'^"'
.
substitute
(
escaped
,
'\(\\\+\)$'
,
'\1\1'
,
''
).
'^"'
endfunction
function
!
s:shellesc
(
arg
)
return
'"'
.
escape
(
a:arg
,
'"'
).
'"'
if
&
shell
=~
#
'cmd.exe$'
return
s:shellesc_cmd
(
a:arg
)
endif
return
shellescape
(
a:arg
)
endfunction
function
!
s:glob_dir
(
path
)
...
...
@@ -1991,11 +2019,19 @@ endfunction
function
!
s:system
(
cmd
,
...)
try
let
[
sh
,
shrd
]
=
s:chsh
(
1
)
let
[
sh
,
sh
ellcmdflag
,
sh
rd
]
=
s:chsh
(
1
)
let
cmd
=
a:0
>
0
?
s:with_cd
(
a:cmd
,
a:1
)
:
a:cmd
if
s:is_win
let
batchfile
=
tempname
().
'.bat'
call
writefile
([
'@echo off'
,
cmd
],
batchfile
)
let
cmd
=
batchfile
endif
return
system
(
s:is_win
?
'('
.
cmd
.
')'
:
cmd
)
finally
let
[
&
shell
,
&shellredir
]
=
[
sh
,
shrd
]
let
[
&
shell
,
&shellcmdflag
,
&shellredir
]
=
[
sh
,
shellcmdflag
,
shrd
]
if
s:is_win
call
delete
(
batchfile
)
endif
endtry
endfunction
...
...
@@ -2210,15 +2246,16 @@ function! s:status()
let
unloaded
=
0
let
[
cnt
,
total
]
=
[
0
,
len
(
g:plugs
)]
for
[
name
,
spec
]
in
items
(
g:plugs
)
let
is_dir
=
isdirectory
(
spec
.
dir
)
if
has_key
(
spec
,
'uri'
)
if
is
directory
(
spec
.
dir
)
if
is
_dir
let
[
err
,
_
]
=
s:git_validate
(
spec
,
1
)
let
[
valid
,
msg
]
=
[
empty
(
err
),
empty
(
err
)
?
'OK'
:
err
]
else
let
[
valid
,
msg
]
=
[
0
,
'Not found. Try PlugInstall.'
]
endif
else
if
is
directory
(
spec
.
dir
)
if
is
_dir
let
[
valid
,
msg
]
=
[
1
,
'OK'
]
else
let
[
valid
,
msg
]
=
[
0
,
'Not found.'
]
...
...
@@ -2227,7 +2264,7 @@ function! s:status()
let
cnt
+=
1
let
ecnt
+=
!
valid
" `s:loaded` entry can be missing if PlugUpgraded
if
valid
&& get
(
s:loaded
,
name
,
-1
)
==
0
if
is_dir
&& get
(
s:loaded
,
name
,
-1
)
==
0
let
unloaded
=
1
let
msg
.=
' (not loaded)'
endif
...
...
@@ -2316,10 +2353,19 @@ function! s:preview_commit()
endif
setlocal
previewwindow
filetype
=
git buftype
=
nofile nobuflisted modifiable
try
let
[
sh
,
shrd
]
=
s:chsh
(
1
)
execute
'silent %!cd'
s:shellesc
(
g:plugs
[
name
].
dir
)
'&& git show --no-color --pretty=medium'
sha
let
[
sh
,
shellcmdflag
,
shrd
]
=
s:chsh
(
1
)
let
cmd
=
'cd '
.
s:shellesc
(
g:plugs
[
name
].
dir
).
' && git show --no-color --pretty=medium '
.
sha
if
s:is_win
let
batchfile
=
tempname
().
'.bat'
call
writefile
([
'@echo off'
,
cmd
],
batchfile
)
let
cmd
=
batchfile
endif
execute
'silent %!'
cmd
finally
let
[
&
shell
,
&shellredir
]
=
[
sh
,
shrd
]
let
[
&
shell
,
&shellcmdflag
,
&shellredir
]
=
[
sh
,
shellcmdflag
,
shrd
]
if
s:is_win
call
delete
(
batchfile
)
endif
endtry
setlocal
nomodifiable
nnoremap
<
silent
>
<
buffer
>
q
:
q
<
cr
>
...
...
@@ -2361,7 +2407,7 @@ function! s:diff()
call
s:append_ul
(
2
,
origin ?
'Pending updates:'
:
'Last update:'
)
for
[
k
,
v
]
in
plugs
let
range
=
origin ?
'..origin/'
.
v
.
branch
:
'HEAD@{1}..'
let
diff
=
s:system_chomp
(
'git log --graph --color=never
--pretty=format:"%x01%h%x01%d%x01%s%x01%cr" '
.
s:shellesc
(
range
),
v
.
dir
)
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
)
if
!
empty
(
diff
)
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)'
)))
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment