aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2018-12-12 00:17:27 +0100
committerJustin M. Keyes <justinkz@gmail.com>2018-12-12 01:26:21 +0100
commit61d0dfee32ce9a9fb2497b02558df02eabb61d1b (patch)
tree2c4baf45a88d58772382c99deb045897ce43e40d
parent2b01c3a8a87a8d8ba26bc95b95441835634a2948 (diff)
downloadrneovim-61d0dfee32ce9a9fb2497b02558df02eabb61d1b.tar.gz
rneovim-61d0dfee32ce9a9fb2497b02558df02eabb61d1b.tar.bz2
rneovim-61d0dfee32ce9a9fb2497b02558df02eabb61d1b.zip
provider: repurpose E319
In Vim (and some vestigial parts of Nvim) E319 was a placeholder for ex_ni commands, i.e. commands that are only available in certain builds of Vim. That is obviously counter to Nvim's goals: all Nvim commands are available on all platforms and build types (the remaining ex_ni commands are actually just missing providers). We need an error id for "missing provider", so it makes sense to use E319 for that purpose. ref #9344 ref #3577
-rw-r--r--runtime/doc/message.txt9
-rw-r--r--runtime/doc/provider.txt13
-rw-r--r--src/nvim/ex_cmds2.c3
-rw-r--r--test/functional/provider/python3_spec.lua7
-rw-r--r--test/functional/provider/python_spec.lua7
5 files changed, 24 insertions, 15 deletions
diff --git a/runtime/doc/message.txt b/runtime/doc/message.txt
index d52905fc36..a46648119e 100644
--- a/runtime/doc/message.txt
+++ b/runtime/doc/message.txt
@@ -514,15 +514,6 @@ command. The script can then again read another script. This can continue
for about 14 levels. When more nesting is done, Vim assumes that there is a
recursive loop somewhere and stops with this error message.
- *E319* >
- The command is not available in this version
-
-You have used a command that is not present in the version of Vim you are
-using. When compiling Vim, many different features can be enabled or
-disabled. This depends on how big Vim has chosen to be and the operating
-system. See |+feature-list| for when which feature is available. The
-|:version| command shows which feature Vim was compiled with.
-
*E300* >
Swap file already exists (symlink attack?)
diff --git a/runtime/doc/provider.txt b/runtime/doc/provider.txt
index 930c73d06e..6ed3c230b9 100644
--- a/runtime/doc/provider.txt
+++ b/runtime/doc/provider.txt
@@ -4,14 +4,21 @@
NVIM REFERENCE MANUAL by Thiago de Arruda
-Providers *provider*
+Providers *provider*
-Nvim delegates some features to dynamic "providers".
+Nvim delegates some features to dynamic "providers". This document describes
+the providers and how to install them.
+ *E319*
+Use of a feature requiring a missing provider is an error: >
+
+ E319: No "foo" provider found. Run ":checkhealth provider"
+
+Run the |:checkhealth| command, and review the sections below.
Type |gO| to see the table of contents.
==============================================================================
-Python integration *provider-python*
+Python integration *provider-python*
Nvim supports Python |remote-plugin|s and the Vim legacy |python2| and
|python3| interfaces (which are implemented as remote-plugins).
diff --git a/src/nvim/ex_cmds2.c b/src/nvim/ex_cmds2.c
index d03bfd2488..c9b6d19aaa 100644
--- a/src/nvim/ex_cmds2.c
+++ b/src/nvim/ex_cmds2.c
@@ -3830,7 +3830,8 @@ static void script_host_execute(char *name, exarg_T *eap)
tv_list_append_number(args, (int)eap->line2);
if (!eval_has_provider(name)) {
- emsgf("No \"%s\" provider found. Run \":checkhealth provider\"", name);
+ emsgf("E319: No \"%s\" provider found. Run \":checkhealth provider\"",
+ name);
} else {
(void)eval_call_provider(name, "execute", args);
}
diff --git a/test/functional/provider/python3_spec.lua b/test/functional/provider/python3_spec.lua
index 93ac3ae017..5e73690986 100644
--- a/test/functional/provider/python3_spec.lua
+++ b/test/functional/provider/python3_spec.lua
@@ -2,6 +2,7 @@ local helpers = require('test.functional.helpers')(after_each)
local eval, command, feed = helpers.eval, helpers.command, helpers.feed
local eq, clear, insert = helpers.eq, helpers.clear, helpers.insert
local expect, write_file = helpers.expect, helpers.write_file
+local expect_err = helpers.expect_err
local feed_command = helpers.feed_command
local source = helpers.source
local missing_provider = helpers.missing_provider
@@ -9,7 +10,11 @@ local missing_provider = helpers.missing_provider
do
clear()
if missing_provider('python3') then
- pending('Python 3 (or the neovim module) is broken/missing', function() end)
+ it(':python3 reports E319 if provider is missing', function()
+ expect_err([[Vim%(python3%):E319: No "python3" provider found.*]],
+ command, 'python3 print("foo")')
+ end)
+ pending('Python 3 (or the pynvim module) is broken/missing', function() end)
return
end
end
diff --git a/test/functional/provider/python_spec.lua b/test/functional/provider/python_spec.lua
index 2fa74e9644..15df76d2f6 100644
--- a/test/functional/provider/python_spec.lua
+++ b/test/functional/provider/python_spec.lua
@@ -8,6 +8,7 @@ local funcs = helpers.funcs
local meths = helpers.meths
local insert = helpers.insert
local expect = helpers.expect
+local expect_err = helpers.expect_err
local command = helpers.command
local exc_exec = helpers.exc_exec
local write_file = helpers.write_file
@@ -17,7 +18,11 @@ local missing_provider = helpers.missing_provider
do
clear()
if missing_provider('python') then
- pending('Python 2 (or the neovim module) is broken/missing', function() end)
+ it(':python reports E319 if provider is missing', function()
+ expect_err([[Vim%(python%):E319: No "python" provider found.*]],
+ command, 'python print("foo")')
+ end)
+ pending('Python 2 (or the pynvim module) is broken/missing', function() end)
return
end
end