From 2b01c3a8a87a8d8ba26bc95b95441835634a2948 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Tue, 11 Dec 2018 23:51:29 +0100 Subject: ex_cmds: Remove various "not implemented" commands Commands related to Netbeans, Sun Workshop, and GUI shims, were intentionally removed and will not be implemented. --- src/nvim/ex_cmds.lua | 36 ------------------------------------ 1 file changed, 36 deletions(-) diff --git a/src/nvim/ex_cmds.lua b/src/nvim/ex_cmds.lua index d9212aa4e3..79ca5363e0 100644 --- a/src/nvim/ex_cmds.lua +++ b/src/nvim/ex_cmds.lua @@ -1706,24 +1706,6 @@ return { addr_type=ADDR_LINES, func='ex_next', }, - { - command='nbkey', - flags=bit.bor(EXTRA, NOTADR, NEEDARG), - addr_type=ADDR_LINES, - func='ex_ni', - }, - { - command='nbclose', - flags=bit.bor(TRLBAR, CMDWIN), - addr_type=ADDR_LINES, - func='ex_ni', - }, - { - command='nbstart', - flags=bit.bor(WORD1, TRLBAR, CMDWIN), - addr_type=ADDR_LINES, - func='ex_ni', - }, { command='new', flags=bit.bor(BANG, FILE1, RANGE, NOTADR, EDITCMD, ARGOPT, TRLBAR), @@ -1958,18 +1940,6 @@ return { addr_type=ADDR_LINES, func='ex_previous', }, - { - command='promptfind', - flags=bit.bor(EXTRA, NOTRLCOM, CMDWIN), - addr_type=ADDR_LINES, - func='ex_ni', - }, - { - command='promptrepl', - flags=bit.bor(EXTRA, NOTRLCOM, CMDWIN), - addr_type=ADDR_LINES, - func='ex_ni', - }, { command='profile', flags=bit.bor(BANG, EXTRA, TRLBAR, CMDWIN), @@ -3116,12 +3086,6 @@ return { addr_type=ADDR_LINES, func='do_wqall', }, - { - command='wsverb', - flags=bit.bor(EXTRA, NOTADR, NEEDARG), - addr_type=ADDR_LINES, - func='ex_ni', - }, { command='wshada', flags=bit.bor(BANG, FILE1, TRLBAR, CMDWIN), -- cgit From 61d0dfee32ce9a9fb2497b02558df02eabb61d1b Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Wed, 12 Dec 2018 00:17:27 +0100 Subject: 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 --- runtime/doc/message.txt | 9 --------- runtime/doc/provider.txt | 13 ++++++++++--- src/nvim/ex_cmds2.c | 3 ++- test/functional/provider/python3_spec.lua | 7 ++++++- test/functional/provider/python_spec.lua | 7 ++++++- 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 -- cgit