change &rtp manipulation
- make it append only (instead both append + prepend) - which draws *_rm_a and *_add_a useless as &rtp order gets preserved - benefits: simpler, faster, less code
This commit is contained in:
parent
8e9b933ed4
commit
1e140c9f6b
@ -1,14 +1,13 @@
|
||||
func! vundle#config#bundle(arg, ...)
|
||||
let bundle = vundle#config#init_bundle(a:arg, a:000)
|
||||
call s:rtp_rm_a()
|
||||
call s:rtp_rm(bundle.rtpath)
|
||||
call add(g:bundles, bundle)
|
||||
call s:rtp_add_a()
|
||||
call s:rtp_add(bundle.rtpath)
|
||||
return bundle
|
||||
endf
|
||||
|
||||
func! vundle#config#init()
|
||||
if !exists('g:bundles') | let g:bundles = [] | endif
|
||||
call s:rtp_rm_a()
|
||||
let g:bundles = []
|
||||
endf
|
||||
|
||||
@ -64,30 +63,17 @@ func! s:parse_name(arg)
|
||||
return {'name': name, 'uri': uri, 'name_spec': arg }
|
||||
endf
|
||||
|
||||
func! s:rtp_rm_a()
|
||||
let paths = map(copy(g:bundles), 'v:val.rtpath')
|
||||
let prepends = join(paths, ',')
|
||||
let appends = join(paths, '/after,').'/after'
|
||||
exec 'set rtp-='.fnameescape(prepends)
|
||||
exec 'set rtp-='.fnameescape(appends)
|
||||
endf
|
||||
|
||||
func! s:rtp_add_a()
|
||||
let paths = map(copy(g:bundles), 'v:val.rtpath')
|
||||
let prepends = join(paths, ',')
|
||||
let appends = join(paths, '/after,').'/after'
|
||||
exec 'set rtp^='.fnameescape(prepends)
|
||||
exec 'set rtp+='.fnameescape(appends)
|
||||
endf
|
||||
|
||||
func! s:rtp_rm(dir) abort
|
||||
exec 'set rtp-='.fnameescape(expand(a:dir, 1))
|
||||
exec 'set rtp-='.fnameescape(expand(a:dir.'/after', 1))
|
||||
endf
|
||||
|
||||
func! s:rtp_add(dir) abort
|
||||
exec 'set rtp^='.fnameescape(expand(a:dir, 1))
|
||||
exec 'set rtp+='.fnameescape(expand(a:dir.'/after', 1))
|
||||
exec 'set rtp+='.fnameescape(expand(a:dir, 1))
|
||||
let after_dir = expand(a:dir.'/after', 1)
|
||||
if isdirectory(after_dir)
|
||||
exec 'set rtp+='.fnameescape(after_dir)
|
||||
end
|
||||
endf
|
||||
|
||||
func! s:expand_path(path) abort
|
||||
|
Loading…
Reference in New Issue
Block a user