mirror of
https://github.com/prurigro/darkcloud-nvimconfig.git
synced 2024-11-25 20:51:26 -05:00
Move python to optional dependencies since the vimrc is smart enough to disable those plugins when they aren't being used, add the msgpack requirement for deoplete, and don't load deoplete if msgpack isn't available
This commit is contained in:
parent
dd9b823685
commit
948add4516
2 changed files with 27 additions and 13 deletions
|
@ -8,14 +8,15 @@ A theme, config and collection of plugins for Vim.
|
||||||
* **Bash**: Required by the _update_ and _gentags_ scripts.
|
* **Bash**: Required by the _update_ and _gentags_ scripts.
|
||||||
* **Coreutils**: Required by the _update_ script.
|
* **Coreutils**: Required by the _update_ script.
|
||||||
* **Git**: Required by the _update_ script and git-related plugins.
|
* **Git**: Required by the _update_ script and git-related plugins.
|
||||||
* **Python**: Required by the _deoplete_ and _MatchTagAlways_ plugins.
|
|
||||||
|
|
||||||
## Optional Requirements ##
|
## Optional Requirements ##
|
||||||
|
|
||||||
* **Compilers, Linters and Runtimes**: The ale plugin can use compilers, linters and runtimes to provide real-time syntax checking.
|
* **Compilers, Linters and Runtimes**: The ale plugin can use compilers, linters and runtimes to provide real-time syntax checking.
|
||||||
* **CTags**: Required by the _tagbar_ and _deoplete_ plugins as well as the _gentags_ script ([ctags website](http://ctags.sourceforge.net)).
|
* **CTags**: Required by the _tagbar_ and _deoplete_ plugins as well as the _gentags_ script ([ctags website](http://ctags.sourceforge.net)).
|
||||||
* **Powerline Fonts**: Required to enable the fancier looking status line ([powerline-fonts repo](https://github.com/Lokaltog/powerline-fonts)).
|
* **Powerline Fonts**: Required to enable the fancier looking status line ([powerline-fonts repo](https://github.com/Lokaltog/powerline-fonts)).
|
||||||
* **Neovim Python Module**: Required for _deoplete_ autocompletion
|
* **Python**: Required for _deoplete_ autocompletion and _MatchTagAlways_ functionality.
|
||||||
|
* **Neovim Python Module**: Required for _deoplete_ autocompletion.
|
||||||
|
* **Python Msgpack**: Required for _deoplete_ autocompletion.
|
||||||
|
|
||||||
## Distribution Features ##
|
## Distribution Features ##
|
||||||
|
|
||||||
|
|
35
vimrc
35
vimrc
|
@ -38,12 +38,13 @@
|
||||||
"Initialize Plugins:
|
"Initialize Plugins:
|
||||||
let pathogen_disabled = []
|
let pathogen_disabled = []
|
||||||
|
|
||||||
"configure pythonx and the python_neovim variable to determine whether deoplete should be loaded
|
|
||||||
if has('python3')
|
if has('python3')
|
||||||
|
"configure pythonx and check for the python-neovim and python-msgpack libraries if python3 is found
|
||||||
if !has('nvim')
|
if !has('nvim')
|
||||||
set pyxversion=3
|
set pyxversion=3
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
"check for python-neovim
|
||||||
redir => python_neovim_check
|
redir => python_neovim_check
|
||||||
silent python3 exec("import pkgutil\nneovim = pkgutil.find_loader('neovim')\nfound = neovim is not None\nprint(found)")
|
silent python3 exec("import pkgutil\nneovim = pkgutil.find_loader('neovim')\nfound = neovim is not None\nprint(found)")
|
||||||
redir END
|
redir END
|
||||||
|
@ -53,29 +54,41 @@
|
||||||
else
|
else
|
||||||
let g:python_neovim = 0
|
let g:python_neovim = 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
"check for python-msgpack
|
||||||
|
redir => python_msgpack_check
|
||||||
|
silent python3 exec("import pkgutil\nmsgpack = pkgutil.find_loader('msgpack')\nfound = msgpack is not None\nprint(found)")
|
||||||
|
redir END
|
||||||
|
|
||||||
|
if substitute(python_msgpack_check, '^\n*\([^\n]*\)\n*$', '\1', '') == 'True'
|
||||||
|
let g:python_msgpack = 1
|
||||||
|
else
|
||||||
|
let g:python_msgpack = 0
|
||||||
|
endif
|
||||||
else
|
else
|
||||||
let g:python_neovim = 0
|
"if python isn't available disable plugins that depend on it and set library variables to false
|
||||||
endif
|
|
||||||
|
|
||||||
"disable incompatible/unnecessary plugins
|
|
||||||
if has('nvim')
|
|
||||||
call add(pathogen_disabled, 'vim-fixkey')
|
|
||||||
endif
|
|
||||||
|
|
||||||
if !has('python') && !has('python3')
|
|
||||||
call add(pathogen_disabled, 'MatchTagAlways')
|
call add(pathogen_disabled, 'MatchTagAlways')
|
||||||
|
let g:python_neovim = 0
|
||||||
|
let g:python_msgpack = 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if !g:python_neovim
|
if !g:python_neovim || !g:python_msgpack
|
||||||
|
"don't load deoplete if either of its python dependencies are missing
|
||||||
call add(pathogen_disabled, 'deoplete.nvim')
|
call add(pathogen_disabled, 'deoplete.nvim')
|
||||||
call add(pathogen_disabled, 'neco-syntax')
|
call add(pathogen_disabled, 'neco-syntax')
|
||||||
call add(pathogen_disabled, 'nvim-yarp')
|
call add(pathogen_disabled, 'nvim-yarp')
|
||||||
call add(pathogen_disabled, 'vim-hug-neovim-rpc')
|
call add(pathogen_disabled, 'vim-hug-neovim-rpc')
|
||||||
elseif has('nvim')
|
elseif has('nvim')
|
||||||
|
"don't load the neovim compatibility plugins required by deoplete if actually running neovim
|
||||||
call add(pathogen_disabled, 'nvim-yarp')
|
call add(pathogen_disabled, 'nvim-yarp')
|
||||||
call add(pathogen_disabled, 'vim-hug-neovim-rpc')
|
call add(pathogen_disabled, 'vim-hug-neovim-rpc')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
"if neovim is being used we should disable plugins that aren't compatible or necessary
|
||||||
|
if has('nvim')
|
||||||
|
call add(pathogen_disabled, 'vim-fixkey')
|
||||||
|
endif
|
||||||
|
|
||||||
"use pathogen to load plugins that haven't been disabled
|
"use pathogen to load plugins that haven't been disabled
|
||||||
runtime bundle/vim-pathogen/autoload/pathogen.vim
|
runtime bundle/vim-pathogen/autoload/pathogen.vim
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue