mirror of
https://github.com/neovim/neovim.git
synced 2024-12-23 20:55:18 -07:00
fix(lsp): call config on_exit handler before context is cleared (#16781)
The on_exit handler provided to the client configuration is called after
the client's context is cleared (e.g. which buffers the client was
attached to). Calling the handler sooner allows these handlers to access
the client object and do their own cleanup with the full context.
(cherry picked from commit 5ab49430ee
)
Co-authored-by: Gregory Anders <greg@gpanders.com>
This commit is contained in:
parent
37a00be7c0
commit
571609fb89
@ -776,6 +776,10 @@ function lsp.start_client(config)
|
|||||||
---@param code (number) exit code of the process
|
---@param code (number) exit code of the process
|
||||||
---@param signal (number) the signal used to terminate (if any)
|
---@param signal (number) the signal used to terminate (if any)
|
||||||
function dispatch.on_exit(code, signal)
|
function dispatch.on_exit(code, signal)
|
||||||
|
if config.on_exit then
|
||||||
|
pcall(config.on_exit, code, signal, client_id)
|
||||||
|
end
|
||||||
|
|
||||||
active_clients[client_id] = nil
|
active_clients[client_id] = nil
|
||||||
uninitialized_clients[client_id] = nil
|
uninitialized_clients[client_id] = nil
|
||||||
|
|
||||||
@ -791,10 +795,6 @@ function lsp.start_client(config)
|
|||||||
vim.notify(msg, vim.log.levels.WARN)
|
vim.notify(msg, vim.log.levels.WARN)
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
if config.on_exit then
|
|
||||||
pcall(config.on_exit, code, signal, client_id)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Start the RPC client.
|
-- Start the RPC client.
|
||||||
|
Loading…
Reference in New Issue
Block a user