aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthieu Coudron <mattator@gmail.com>2020-06-06 01:39:12 +0200
committerGitHub <noreply@github.com>2020-06-06 01:39:12 +0200
commitfca471d8e2573c2351151051a2d2c6eee0b2243b (patch)
tree7f780041f47169417ad31a699f5105ebdfbdd1a9
parentdd4018947c9f9b39b4e473c21ebf0e27f1e7ddc5 (diff)
parent89123017b8148569bafb34d03304358cf1411a7f (diff)
downloadrneovim-fca471d8e2573c2351151051a2d2c6eee0b2243b.tar.gz
rneovim-fca471d8e2573c2351151051a2d2c6eee0b2243b.tar.bz2
rneovim-fca471d8e2573c2351151051a2d2c6eee0b2243b.zip
Merge pull request #12411 from kuuote/fix-remote-plugin-command
runtime: fix remote plugin command fails at some case
-rw-r--r--runtime/autoload/remote/define.vim2
-rw-r--r--test/functional/provider/define_spec.lua15
2 files changed, 16 insertions, 1 deletions
diff --git a/runtime/autoload/remote/define.vim b/runtime/autoload/remote/define.vim
index 2688a62a82..2aec96e365 100644
--- a/runtime/autoload/remote/define.vim
+++ b/runtime/autoload/remote/define.vim
@@ -24,7 +24,7 @@ function! remote#define#CommandOnHost(host, method, sync, name, opts)
endif
if has_key(a:opts, 'nargs')
- call add(forward_args, ' <args>')
+ call add(forward_args, ' " . <q-args> . "')
endif
exe s:GetCommandPrefix(a:name, a:opts)
diff --git a/test/functional/provider/define_spec.lua b/test/functional/provider/define_spec.lua
index 51a8831274..1d50ce0a56 100644
--- a/test/functional/provider/define_spec.lua
+++ b/test/functional/provider/define_spec.lua
@@ -89,6 +89,21 @@ local function command_specs_for(fn, sync, first_arg_factory, init)
runx(sync, handler, on_setup)
end)
+ it('with nargs/double-quote', function()
+ call(fn, args..', {"nargs": "*"}')
+ local function on_setup()
+ command('RpcCommand "arg1" "arg2" "arg3"')
+ end
+
+ local function handler(method, arguments)
+ eq('test-handler', method)
+ eq({'"arg1"', '"arg2"', '"arg3"'}, arguments[1])
+ return ''
+ end
+
+ runx(sync, handler, on_setup)
+ end)
+
it('with range', function()
call(fn,args..', {"range": ""}')
local function on_setup()