1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-02-03 18:10:05 +08:00
SpaceVim/autoload/SpaceVim/plugins.vim
rcasta74 2d6b3a98c4 Improve compatibility with old vim (#2130)
* fix variable type mismatch

* Disable plugin with neobundle plugin manager

* Call the correct 'get' function when plugin_manager is neobundle

* Update the Following-HEAD page.
2018-09-02 18:30:15 -05:00

82 lines
2.2 KiB
VimL

"=============================================================================
" plugins.vim --- plugin wrapper
" Copyright (c) 2016-2017 Wang Shidong & Contributors
" Author: Wang Shidong < wsdjeg at 163.com >
" URL: https://spacevim.org
" License: GPLv3
"=============================================================================
scriptencoding utf-8
function! SpaceVim#plugins#load() abort
if zvim#plug#enable_plug()
call zvim#plug#begin(g:spacevim_plugin_bundle_dir)
call zvim#plug#fetch()
call s:load_plugins()
call s:disable_plugins(g:spacevim_disabled_plugins)
call zvim#plug#end()
endif
endfunction
function! s:load_plugins() abort
for group in SpaceVim#layers#get()
let g:_spacevim_plugin_layer = group
for plugin in s:getLayerPlugins(group)
if len(plugin) == 2
call zvim#plug#add(plugin[0], plugin[1])
if zvim#plug#tap(split(plugin[0], '/')[-1]) && get(plugin[1], 'loadconf', 0 )
call zvim#plug#defind_hooks(split(plugin[0], '/')[-1])
endif
if zvim#plug#tap(split(plugin[0], '/')[-1]) && get(plugin[1], 'loadconf_before', 0 )
call zvim#plug#loadPluginBefore(split(plugin[0], '/')[-1])
endif
else
call zvim#plug#add(plugin[0])
endif
endfor
call s:loadLayerConfig(group)
endfor
unlet g:_spacevim_plugin_layer
for plugin in g:spacevim_custom_plugins
if len(plugin) == 2
call zvim#plug#add(plugin[0], plugin[1])
else
call zvim#plug#add(plugin[0])
endif
endfor
endfunction
function! s:getLayerPlugins(layer) abort
let p = []
try
let p = SpaceVim#layers#{a:layer}#plugins()
catch /^Vim\%((\a\+)\)\=:E117/
endtry
return p
endfunction
function! s:loadLayerConfig(layer) abort
try
call SpaceVim#layers#{a:layer}#config()
catch /^Vim\%((\a\+)\)\=:E117/
endtry
endfunction
function! s:disable_plugins(plugin_list) abort
if g:spacevim_plugin_manager ==# 'dein'
for name in a:plugin_list
call dein#disable(name)
endfor
elseif g:spacevim_plugin_manager ==# 'neobundle'
for name in a:plugin_list
call neobundle#config#disable(name)
endfor
endif
endfunction
function! SpaceVim#plugins#get(...) abort
endfunction
" vim:set et sw=2: