aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp.lua
diff options
context:
space:
mode:
authorAshkan Kiani <ashkan.k.kiani@gmail.com>2019-11-23 16:14:24 -0800
committerAshkan Kiani <ashkan.k.kiani@gmail.com>2019-11-23 16:14:24 -0800
commitd410812311f7b462420690455914ea1316953b3a (patch)
treefb313128e727a3a51c867a3d98e4228e6b237611 /runtime/lua/vim/lsp.lua
parent42c53d266afb989467879de29ef2e9ccdaa4b152 (diff)
downloadrneovim-d410812311f7b462420690455914ea1316953b3a.tar.gz
rneovim-d410812311f7b462420690455914ea1316953b3a.tar.bz2
rneovim-d410812311f7b462420690455914ea1316953b3a.zip
UI tweaks.
- Hide diagnostics on client exit - Stop insert on popup focus. - Hide popup on insertchar (for signature_help)
Diffstat (limited to 'runtime/lua/vim/lsp.lua')
-rw-r--r--runtime/lua/vim/lsp.lua12
1 files changed, 11 insertions, 1 deletions
diff --git a/runtime/lua/vim/lsp.lua b/runtime/lua/vim/lsp.lua
index 880d811647..7076db68d3 100644
--- a/runtime/lua/vim/lsp.lua
+++ b/runtime/lua/vim/lsp.lua
@@ -343,9 +343,19 @@ function lsp.start_client(config)
function handlers.on_exit(code, signal)
active_clients[client_id] = nil
uninitialized_clients[client_id] = nil
- for _, client_ids in pairs(all_buffer_active_clients) do
+ local active_buffers = {}
+ for bufnr, client_ids in pairs(all_buffer_active_clients) do
+ if client_ids[client_id] then
+ table.insert(active_buffers, bufnr)
+ end
client_ids[client_id] = nil
end
+ -- Buffer level cleanup
+ vim.schedule(function()
+ for _, bufnr in ipairs(active_buffers) do
+ util.buf_clear_diagnostics(bufnr)
+ end
+ end)
if config.on_exit then
pcall(config.on_exit, code, signal, client_id)
end