diff options
author | Mathias Fußenegger <mfussenegger@users.noreply.github.com> | 2022-08-08 12:34:37 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-08 12:34:37 +0200 |
commit | 2d5fce2cdb1254391481a1603be7bfb0872044a5 (patch) | |
tree | 9915243a41d89bfd5558ae18ea65ae84347bdbb5 /runtime/lua/vim/lsp.lua | |
parent | 18766e742bdc8d179ff73b739a530052c9a669e5 (diff) | |
download | rneovim-2d5fce2cdb1254391481a1603be7bfb0872044a5.tar.gz rneovim-2d5fce2cdb1254391481a1603be7bfb0872044a5.tar.bz2 rneovim-2d5fce2cdb1254391481a1603be7bfb0872044a5.zip |
feat(lsp): disable exit_timeout by default (#19672)
The lsp client used to wait up to 500ms for a language server to
shutdown before sending a TERM signal.
The intention behind the 500ms grace period was to ensure the language
server exits to prevent stale processes, but it has the side-effect that
it can interrupt language-servers which are too slow to shutdown within
500ms. Language servers tend to write out index files or project files
on shutdown, and being interrupted during this process can cause
corruption of those files.
This changes the default to not wait at all, at the risk of leaving
stale processes around if the language server isn't well behaved.
An alternative would be to wait indefinitely, but that can cause neovim
to take several seconds to exit.
Diffstat (limited to 'runtime/lua/vim/lsp.lua')
-rw-r--r-- | runtime/lua/vim/lsp.lua | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/runtime/lua/vim/lsp.lua b/runtime/lua/vim/lsp.lua index bf2201d9c8..2f6323ee30 100644 --- a/runtime/lua/vim/lsp.lua +++ b/runtime/lua/vim/lsp.lua @@ -871,7 +871,7 @@ end --- - debounce_text_changes (number, default 150): Debounce didChange --- notifications to the server by the given number in milliseconds. No debounce --- occurs if nil ---- - exit_timeout (number, default 500): Milliseconds to wait for server to +--- - exit_timeout (number|boolean, default false): Milliseconds to wait for server to --- exit cleanly after sending the 'shutdown' request before sending kill -15. --- If set to false, nvim exits immediately after sending the 'shutdown' request to the server. --- @@ -1681,7 +1681,7 @@ api.nvim_create_autocmd('VimLeavePre', { local send_kill = false for client_id, client in pairs(active_clients) do - local timeout = if_nil(client.config.flags.exit_timeout, 500) + local timeout = if_nil(client.config.flags.exit_timeout, false) if timeout then send_kill = true timeouts[client_id] = timeout |