aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp/rpc.lua
diff options
context:
space:
mode:
authorMichael Lingelbach <m.j.lbach@gmail.com>2021-04-01 17:01:51 -0700
committerGitHub <noreply@github.com>2021-04-01 17:01:51 -0700
commita03be1e44f93a33f3dfab2326032d2e1f3b29143 (patch)
tree60317a2c4f825ce19ef63b25d665e82acf3444ba /runtime/lua/vim/lsp/rpc.lua
parent0bf24d3eb1b14e85f19c6b2449e9c85ff0bcb0ab (diff)
parent3b01dd418383452ac18df58a34938c48e7492559 (diff)
downloadrneovim-a03be1e44f93a33f3dfab2326032d2e1f3b29143.tar.gz
rneovim-a03be1e44f93a33f3dfab2326032d2e1f3b29143.tar.bz2
rneovim-a03be1e44f93a33f3dfab2326032d2e1f3b29143.zip
Merge pull request #14271 from mjlbach/feature/lsp_cwd
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)