diff options
author | Michael Lingelbach <m.j.lbach@gmail.com> | 2021-04-01 17:01:51 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-01 17:01:51 -0700 |
commit | a03be1e44f93a33f3dfab2326032d2e1f3b29143 (patch) | |
tree | 60317a2c4f825ce19ef63b25d665e82acf3444ba /runtime/lua/vim/lsp/rpc.lua | |
parent | 0bf24d3eb1b14e85f19c6b2449e9c85ff0bcb0ab (diff) | |
parent | 3b01dd418383452ac18df58a34938c48e7492559 (diff) | |
download | rneovim-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.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) |