mirror of
https://github.com/neovim/neovim.git
synced 2025-10-10 03:46:31 +00:00
provider: g:loaded_xx_provider=2 means "enabled and working"
Value of 1 cannot be used, because users might set that in their vimrc to _disable_ a provider, which would confuse :checkhealth and has().
This commit is contained in:
@@ -5,11 +5,11 @@
|
||||
if exists('g:loaded_clipboard_provider')
|
||||
finish
|
||||
endif
|
||||
" Default to FALSE. Set by provider#clipboard#Executable() later.
|
||||
" Default to 1. provider#clipboard#Executable() may set 2.
|
||||
" To force a reload:
|
||||
" :unlet g:loaded_clipboard_provider
|
||||
" :runtime autoload/provider/clipboard.vim
|
||||
let g:loaded_clipboard_provider = 0
|
||||
let g:loaded_clipboard_provider = 1
|
||||
|
||||
let s:copy = {}
|
||||
let s:paste = {}
|
||||
@@ -197,4 +197,4 @@ function! provider#clipboard#Call(method, args) abort
|
||||
endfunction
|
||||
|
||||
" eval_has_provider() decides based on this variable.
|
||||
let g:loaded_clipboard_provider = !empty(provider#clipboard#Executable())
|
||||
let g:loaded_clipboard_provider = empty(provider#clipboard#Executable()) ? 1 : 2
|
||||
|
@@ -1,7 +1,7 @@
|
||||
if exists('g:loaded_node_provider')
|
||||
finish
|
||||
endif
|
||||
let g:loaded_node_provider = 0
|
||||
let g:loaded_node_provider = 1
|
||||
|
||||
function! s:is_minimum_version(version, min_major, min_minor) abort
|
||||
if empty(a:version)
|
||||
@@ -140,9 +140,9 @@ endfunction
|
||||
|
||||
let s:err = ''
|
||||
let s:prog = provider#node#Detect()
|
||||
let g:loaded_node_provider = !empty(s:prog)
|
||||
let g:loaded_node_provider = empty(s:prog) ? 1 : 2
|
||||
|
||||
if !g:loaded_node_provider
|
||||
if g:loaded_node_provider != 2
|
||||
let s:err = 'Cannot find the "neovim" node package. Try :checkhealth'
|
||||
endif
|
||||
|
||||
|
@@ -8,7 +8,7 @@ if exists('g:loaded_python_provider')
|
||||
finish
|
||||
endif
|
||||
let [s:prog, s:err] = provider#pythonx#Detect(2)
|
||||
let g:loaded_python_provider = !empty(s:prog)
|
||||
let g:loaded_python_provider = empty(s:prog) ? 1 : 2
|
||||
|
||||
function! provider#python#Prog() abort
|
||||
return s:prog
|
||||
|
@@ -8,7 +8,7 @@ if exists('g:loaded_python3_provider')
|
||||
finish
|
||||
endif
|
||||
let [s:prog, s:err] = provider#pythonx#Detect(3)
|
||||
let g:loaded_python3_provider = !empty(s:prog)
|
||||
let g:loaded_python3_provider = empty(s:prog) ? 1 : 2
|
||||
|
||||
function! provider#python3#Prog() abort
|
||||
return s:prog
|
||||
|
@@ -2,7 +2,7 @@
|
||||
if exists('g:loaded_ruby_provider')
|
||||
finish
|
||||
endif
|
||||
let g:loaded_ruby_provider = 0
|
||||
let g:loaded_ruby_provider = 1
|
||||
|
||||
function! provider#ruby#Detect() abort
|
||||
return s:prog
|
||||
@@ -62,9 +62,9 @@ endfunction
|
||||
let s:err = ''
|
||||
let s:prog = s:detect()
|
||||
let s:plugin_path = expand('<sfile>:p:h') . '/script_host.rb'
|
||||
let g:loaded_ruby_provider = !empty(s:prog)
|
||||
let g:loaded_ruby_provider = empty(s:prog) ? 1 : 2
|
||||
|
||||
if !g:loaded_ruby_provider
|
||||
if g:loaded_ruby_provider != 2
|
||||
let s:err = 'Cannot find the neovim RubyGem. Try :checkhealth'
|
||||
endif
|
||||
|
||||
|
@@ -106,12 +106,12 @@ in eval.c:
|
||||
- eval_call_provider(name, method, arguments): calls provider#{name}#Call
|
||||
with the method and arguments.
|
||||
- eval_has_provider(name): Checks the `g:loaded_{name}_provider` variable
|
||||
which must be set by the provider script to indicate whether it is enabled
|
||||
and working. Called by |has()| to check if features are available.
|
||||
which must be set to 2 by the provider script to indicate that it is
|
||||
"enabled and working". Called by |has()| to check if features are available.
|
||||
|
||||
For example, the Python provider is implemented by the
|
||||
"autoload/provider/python.vim" script, which sets `g:loaded_python_provider`
|
||||
to TRUE only if a valid external Python host is found. Then `has("python")`
|
||||
to 2 only if a valid external Python host is found. Then `has("python")`
|
||||
reflects whether Python support is working.
|
||||
|
||||
*provider-reload*
|
||||
|
@@ -68,11 +68,11 @@ startup faster. Useful for working with virtualenvs. >
|
||||
<
|
||||
*g:loaded_python_provider*
|
||||
To disable Python 2 support: >
|
||||
let g:loaded_python_provider = 1
|
||||
let g:loaded_python_provider = 0
|
||||
<
|
||||
*g:loaded_python3_provider*
|
||||
To disable Python 3 support: >
|
||||
let g:loaded_python3_provider = 1
|
||||
let g:loaded_python3_provider = 0
|
||||
|
||||
|
||||
PYTHON VIRTUALENVS ~
|
||||
@@ -111,7 +111,7 @@ Run |:checkhealth| to see if your system is up-to-date.
|
||||
RUBY PROVIDER CONFIGURATION ~
|
||||
*g:loaded_ruby_provider*
|
||||
To disable Ruby support: >
|
||||
let g:loaded_ruby_provider = 1
|
||||
let g:loaded_ruby_provider = 0
|
||||
<
|
||||
*g:ruby_host_prog*
|
||||
Command to start the Ruby host. By default this is "neovim-ruby-host". With
|
||||
@@ -142,7 +142,7 @@ Run |:checkhealth| to see if your system is up-to-date.
|
||||
NODEJS PROVIDER CONFIGURATION~
|
||||
*g:loaded_node_provider*
|
||||
To disable Node.js support: >
|
||||
:let g:loaded_node_provider = 1
|
||||
:let g:loaded_node_provider = 0
|
||||
<
|
||||
*g:node_host_prog*
|
||||
Command to start the Node.js host. Setting this makes startup faster.
|
||||
|
@@ -23996,7 +23996,9 @@ bool eval_has_provider(const char *provider)
|
||||
}
|
||||
}
|
||||
|
||||
return (tv.v_type == VAR_NUMBER) ? !!tv.vval.v_number : false;
|
||||
return (tv.v_type == VAR_NUMBER)
|
||||
? 2 == tv.vval.v_number // Value of 2 means "loaded and working".
|
||||
: false;
|
||||
}
|
||||
|
||||
/// Writes "<sourcing_name>:<sourcing_lnum>" to `buf[bufsize]`.
|
||||
|
@@ -1,2 +1,2 @@
|
||||
" A dummy test provider
|
||||
let g:loaded_brokencall_provider = 1
|
||||
let g:loaded_brokencall_provider = 2
|
||||
|
@@ -1,4 +1,4 @@
|
||||
let g:loaded_clipboard_provider = 1
|
||||
let g:loaded_clipboard_provider = 2
|
||||
|
||||
let g:test_clip = { '+': [''], '*': [''], }
|
||||
|
||||
|
Reference in New Issue
Block a user