aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp.lua
diff options
context:
space:
mode:
authorAndre Toerien <49614525+AThePeanut4@users.noreply.github.com>2024-05-23 12:03:47 +0200
committerGitHub <noreply@github.com>2024-05-23 12:03:47 +0200
commit5ac8db10f0428c976dfc9a4935a74d0fe160995c (patch)
treeaa50ff431cfccc926a74553f01456c87dfd3af49 /runtime/lua/vim/lsp.lua
parentbdf15dbe6909b39e5d3cf22ae844ebd37862a1a8 (diff)
downloadrneovim-5ac8db10f0428c976dfc9a4935a74d0fe160995c.tar.gz
rneovim-5ac8db10f0428c976dfc9a4935a74d0fe160995c.tar.bz2
rneovim-5ac8db10f0428c976dfc9a4935a74d0fe160995c.zip
fix(lsp): trigger LspDetach on buffer delete (#28795)
Co-authored-by: Mathias Fussenegger <f.mathias@zignar.net>
Diffstat (limited to 'runtime/lua/vim/lsp.lua')
-rw-r--r--runtime/lua/vim/lsp.lua9
1 files changed, 9 insertions, 0 deletions
diff --git a/runtime/lua/vim/lsp.lua b/runtime/lua/vim/lsp.lua
index ad1794e98d..700c10abc8 100644
--- a/runtime/lua/vim/lsp.lua
+++ b/runtime/lua/vim/lsp.lua
@@ -576,10 +576,19 @@ local function buf_attach(bufnr)
on_detach = function()
local params = { textDocument = { uri = uri } }
for _, client in ipairs(lsp.get_clients({ bufnr = bufnr })) do
+ api.nvim_exec_autocmds('LspDetach', {
+ buffer = bufnr,
+ modeline = false,
+ data = { client_id = client.id },
+ })
+
changetracking.reset_buf(client, bufnr)
if client.supports_method(ms.textDocument_didClose) then
client.notify(ms.textDocument_didClose, params)
end
+
+ local namespace = lsp.diagnostic.get_namespace(client.id)
+ vim.diagnostic.reset(namespace, bufnr)
end
for _, client in ipairs(all_clients) do
client.attached_buffers[bufnr] = nil