mirror of
https://github.com/neovim/neovim.git
synced 2025-10-04 00:46:30 +00:00
fix(lua): vim.fn.has('nvim-0.10') in fast context, used by vim.deprecate
This commit is contained in:
@@ -8782,7 +8782,7 @@ void script_host_eval(char *name, typval_T *argvars, typval_T *rettv)
|
||||
/// an empty typval_T.
|
||||
typval_T eval_call_provider(char *provider, char *method, list_T *arguments, bool discard)
|
||||
{
|
||||
if (!eval_has_provider(provider)) {
|
||||
if (!eval_has_provider(provider, false)) {
|
||||
semsg("E319: No \"%s\" provider found. Run \":checkhealth provider\"",
|
||||
provider);
|
||||
return (typval_T){
|
||||
@@ -8840,7 +8840,7 @@ typval_T eval_call_provider(char *provider, char *method, list_T *arguments, boo
|
||||
}
|
||||
|
||||
/// Checks if provider for feature `feat` is enabled.
|
||||
bool eval_has_provider(const char *feat)
|
||||
bool eval_has_provider(const char *feat, bool throw_if_fast)
|
||||
{
|
||||
if (!strequal(feat, "clipboard")
|
||||
&& !strequal(feat, "python3")
|
||||
@@ -8853,6 +8853,11 @@ bool eval_has_provider(const char *feat)
|
||||
return false;
|
||||
}
|
||||
|
||||
if (throw_if_fast && !nlua_is_deferred_safe()) {
|
||||
semsg(e_luv_api_disabled, "Vimscript function");
|
||||
return false;
|
||||
}
|
||||
|
||||
char name[32]; // Normalized: "python3_compiled" => "python3".
|
||||
snprintf(name, sizeof(name), "%s", feat);
|
||||
strchrsub(name, '_', '\0'); // Chop any "_xx" suffix.
|
||||
|
Reference in New Issue
Block a user