diff options
author | Michael Lingelbach <m.j.lbach@gmail.com> | 2021-04-01 12:39:33 -0700 |
---|---|---|
committer | Michael Lingelbach <m.j.lbach@gmail.com> | 2021-04-01 14:24:37 -0700 |
commit | 3b01dd418383452ac18df58a34938c48e7492559 (patch) | |
tree | d16006bcd907445d7c4940f7e2c372ca6b965c08 /runtime/lua/vim/lsp/rpc.lua | |
parent | 3d25a72a60323c9d6eab2daf9dbd4920b94b8a94 (diff) | |
download | rneovim-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.lua | 9 |
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) |