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
This commit is contained in:
Marco Hinz
2019-01-12 00:52:12 +01:00
committed by Justin M. Keyes
parent 44ea903ca5
commit 8a7b6200fb
5 changed files with 20 additions and 12 deletions

View File

@@ -11,8 +11,9 @@ do
clear()
if missing_provider('python3') then
it(':python3 reports E319 if provider is missing', function()
expect_err([[Vim%(python3%):E319: No "python3" provider found.*]],
command, 'python3 print("foo")')
local expected = [[Vim%(py3.*%):E319: No "python3" provider found.*]]
expect_err(expected, command, 'py3 print("foo")')
expect_err(expected, command, 'py3file foo')
end)
pending('Python 3 (or the pynvim module) is broken/missing', function() end)
return