fix(lsp): handle stale bufnr on LspRequest autocmd trigger (#27981)

continuation of https://github.com/neovim/neovim/pull/24013
This commit is contained in:
Jaehwang Jung 2024-03-23 01:46:01 +09:00 committed by GitHub
parent dc110cba3c
commit 849d82b80b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -693,7 +693,7 @@ function Client:_request(method, params, handler, bufnr)
local request = { type = 'pending', bufnr = bufnr, method = method }
self.requests[request_id] = request
api.nvim_exec_autocmds('LspRequest', {
buffer = bufnr,
buffer = api.nvim_buf_is_valid(bufnr) and bufnr or nil,
modeline = false,
data = { client_id = self.id, request_id = request_id, request = request },
})
@ -804,7 +804,7 @@ function Client:_cancel_request(id)
if request and request.type == 'pending' then
request.type = 'cancel'
api.nvim_exec_autocmds('LspRequest', {
buffer = request.bufnr,
buffer = api.nvim_buf_is_valid(request.bufnr) and request.bufnr or nil,
modeline = false,
data = { client_id = self.id, request_id = id, request = request },
})