From 2f38ed11c98a35b7abe53405d8f5f41cb1054f8f Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Tue, 14 Feb 2017 00:00:29 +0100 Subject: [PATCH] providers: Disable if `g:loaded_*` exists. The exists('g:loaded_foo') convention is rather common, and may be relied upon in some cases. It's also very unlikely that a user or plugin has any reason to set g:loaded_foo to zero, so the principle of least surprise can be brushed aside here. https://github.com/neovim/neovim/issues/6107#issuecomment-279532143 --- runtime/autoload/health/provider.vim | 12 ++++++------ runtime/autoload/provider/python.vim | 2 +- runtime/autoload/provider/python3.vim | 2 +- runtime/autoload/provider/ruby.vim | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/runtime/autoload/health/provider.vim b/runtime/autoload/health/provider.vim index 80deced131..57dd508f96 100644 --- a/runtime/autoload/health/provider.vim +++ b/runtime/autoload/health/provider.vim @@ -226,12 +226,12 @@ function! s:check_python(version) abort let pyenv_root = exists('$PYENV_ROOT') ? resolve($PYENV_ROOT) : 'n' let venv = exists('$VIRTUAL_ENV') ? resolve($VIRTUAL_ENV) : '' let host_prog_var = pyname.'_host_prog' - let loaded_var = 'loaded_'.pyname.'_provider' + let loaded_var = 'g:loaded_'.pyname.'_provider' let python_bin = '' let python_multiple = [] - if get(g:, loaded_var, 0) && !exists('*provider#'.pyname.'#Call') - call health#report_info('Disabled. g:'.loaded_var.'='.get(g:, loaded_var, 0)) + if exists(loaded_var) && !exists('*provider#'.pyname.'#Call') + call health#report_info('Disabled. '.loaded_var.'='.eval(loaded_var)) return endif @@ -415,9 +415,9 @@ endfunction function! s:check_ruby() abort call health#report_start('Ruby provider') - let loaded_var = 'loaded_ruby_provider' - if get(g:, loaded_var, 0) && !exists('*provider#ruby#Call') - call health#report_info('Disabled. g:'.loaded_var.'='.get(g:, loaded_var, 0)) + let loaded_var = 'g:loaded_ruby_provider' + if exists(loaded_var) && !exists('*provider#ruby#Call') + call health#report_info('Disabled. '.loaded_var.'='.eval(loaded_var)) return endif diff --git a/runtime/autoload/provider/python.vim b/runtime/autoload/provider/python.vim index 052172223f..b99a046375 100644 --- a/runtime/autoload/provider/python.vim +++ b/runtime/autoload/provider/python.vim @@ -4,7 +4,7 @@ " Associating the plugin with the Python host is the first step because plugins " will be passed as command-line arguments -if get(g:, 'loaded_python_provider', 0) +if exists('g:loaded_python_provider') finish endif let g:loaded_python_provider = 1 diff --git a/runtime/autoload/provider/python3.vim b/runtime/autoload/provider/python3.vim index 3d6838e92c..4f47a03a9b 100644 --- a/runtime/autoload/provider/python3.vim +++ b/runtime/autoload/provider/python3.vim @@ -4,7 +4,7 @@ " Associating the plugin with the Python3 host is the first step because " plugins will be passed as command-line arguments -if get(g:, 'loaded_python3_provider', 0) +if exists('g:loaded_python3_provider') finish endif let g:loaded_python3_provider = 1 diff --git a/runtime/autoload/provider/ruby.vim b/runtime/autoload/provider/ruby.vim index cd097209aa..c8ede20a75 100644 --- a/runtime/autoload/provider/ruby.vim +++ b/runtime/autoload/provider/ruby.vim @@ -1,5 +1,5 @@ " The Ruby provider helper -if get(g:, 'loaded_ruby_provider', 0) +if exists('g:loaded_ruby_provider') finish endif let g:loaded_ruby_provider = 1