fix(lsp): detach spawned LSP server processes (#18477)

LSP servers should be daemonized (detached) so that they run in a
separate process group from Neovim's. Among other things, this ensures
the process does not inherit Neovim's TTY (#18475).

Make this configurable so that clients can explicitly opt-out of
detaching from Nvim.
This commit is contained in:
Gregory Anders
2022-05-08 13:00:30 -06:00
committed by GitHub
parent 0d3f17a6c3
commit 6cfb1d4c28
3 changed files with 17 additions and 0 deletions

View File

@@ -319,10 +319,14 @@ local function start(cmd, cmd_args, dispatchers, extra_spawn_params)
local spawn_params = {
args = cmd_args;
stdio = {stdin, stdout, stderr};
detached = true;
}
if extra_spawn_params then
spawn_params.cwd = extra_spawn_params.cwd
spawn_params.env = env_merge(extra_spawn_params.env)
if extra_spawn_params.detached ~= nil then
spawn_params.detached = extra_spawn_params.detached
end
end
handle, pid = uv.spawn(cmd, spawn_params, onexit)
if handle == nil then