diff options
author | Marco Hinz <mh.codebro+github@gmail.com> | 2019-01-12 00:52:12 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-12 00:52:12 +0100 |
commit | db3c797c6b3ce9c4f0f50ae22acde0c1aac60725 (patch) | |
tree | 64d9a43c8f5a09949c152319e2dcd6384a268bd8 /src/nvim/eval.c | |
parent | 8853fca1fdc5ee3a2aea3eb3e772e091946a3a71 (diff) | |
download | rneovim-db3c797c6b3ce9c4f0f50ae22acde0c1aac60725.tar.gz rneovim-db3c797c6b3ce9c4f0f50ae22acde0c1aac60725.tar.bz2 rneovim-db3c797c6b3ce9c4f0f50ae22acde0c1aac60725.zip |
provider: improve error message if provider is missing (#9487)
Move `has_eval_provider()` check to `eval_call_provider()` to make sure that
every code path calls it first.
Previously we would, when pynvim was missing, get a nice error message for
`:python3 1`, but not for `:py3file blah`.
Fixes https://github.com/neovim/neovim/issues/9485
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r-- | src/nvim/eval.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 58d42b49a7..4cf8a01ddb 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -22706,6 +22706,16 @@ static void script_host_eval(char *name, typval_T *argvars, typval_T *rettv) typval_T eval_call_provider(char *provider, char *method, list_T *arguments) { + if (!eval_has_provider(provider)) { + emsgf("E319: No \"%s\" provider found. Run \":checkhealth provider\"", + provider); + return (typval_T){ + .v_type = VAR_NUMBER, + .v_lock = VAR_UNLOCKED, + .vval.v_number = (varnumber_T)0 + }; + } + char func[256]; int name_len = snprintf(func, sizeof(func), "provider#%s#Call", provider); |