aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp/rpc.lua
diff options
context:
space:
mode:
authorMichael Lingelbach <m.j.lbach@gmail.com>2021-04-01 12:39:33 -0700
committerMichael Lingelbach <m.j.lbach@gmail.com>2021-04-01 14:24:37 -0700
commit3b01dd418383452ac18df58a34938c48e7492559 (patch)
treed16006bcd907445d7c4940f7e2c372ca6b965c08 /runtime/lua/vim/lsp/rpc.lua
parent3d25a72a60323c9d6eab2daf9dbd4920b94b8a94 (diff)
downloadrneovim-3b01dd418383452ac18df58a34938c48e7492559.tar.gz
rneovim-3b01dd418383452ac18df58a34938c48e7492559.tar.bz2
rneovim-3b01dd418383452ac18df58a34938c48e7492559.zip
lsp: allow launching language servers with uv_spawn using cwd arg
Diffstat (limited to 'runtime/lua/vim/lsp/rpc.lua')
-rw-r--r--runtime/lua/vim/lsp/rpc.lua9
1 files changed, 4 insertions, 5 deletions
diff --git a/runtime/lua/vim/lsp/rpc.lua b/runtime/lua/vim/lsp/rpc.lua
index 4e2dd7c8e8..1aa8326514 100644
--- a/runtime/lua/vim/lsp/rpc.lua
+++ b/runtime/lua/vim/lsp/rpc.lua
@@ -315,8 +315,10 @@ local function start(cmd, cmd_args, dispatchers, extra_spawn_params)
dispatchers = { dispatchers, 't', true };
}
- if not (vim.fn.executable(cmd) == 1) then
- error(string.format("The given command %q is not executable.", cmd))
+ if extra_spawn_params and extra_spawn_params.cwd then
+ assert(is_dir(extra_spawn_params.cwd), "cwd must be a directory")
+ elseif not (vim.fn.executable(cmd) == 1) then
+ error(string.format("The given command %q is not executable.", cmd))
end
if dispatchers then
local user_dispatchers = dispatchers
@@ -370,9 +372,6 @@ local function start(cmd, cmd_args, dispatchers, extra_spawn_params)
}
if extra_spawn_params then
spawn_params.cwd = extra_spawn_params.cwd
- if spawn_params.cwd then
- assert(is_dir(spawn_params.cwd), "cwd must be a directory")
- end
spawn_params.env = env_merge(extra_spawn_params.env)
end
handle, pid = uv.spawn(cmd, spawn_params, onexit)