aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp/inlay_hint.lua
diff options
context:
space:
mode:
authorglepnir <glephunter@gmail.com>2024-09-11 23:11:09 +0800
committerGitHub <noreply@github.com>2024-09-11 08:11:09 -0700
commitf9bf64d74641f33961fe1d6c1592b65d2744298f (patch)
treeced913f5fce7ab7c4103e3d4c2a6ebfd16daadca /runtime/lua/vim/lsp/inlay_hint.lua
parenta30afeeb85176b83f3f540851218165e5d9c4c47 (diff)
downloadrneovim-f9bf64d74641f33961fe1d6c1592b65d2744298f.tar.gz
rneovim-f9bf64d74641f33961fe1d6c1592b65d2744298f.tar.bz2
rneovim-f9bf64d74641f33961fe1d6c1592b65d2744298f.zip
fix(lsp): check buffer is loaded and valid #30330
Problem: buffer mabye not valid when callback handler invoke. Soliton: check buffer is valid and loaded in handler.
Diffstat (limited to 'runtime/lua/vim/lsp/inlay_hint.lua')
-rw-r--r--runtime/lua/vim/lsp/inlay_hint.lua13
1 files changed, 6 insertions, 7 deletions
diff --git a/runtime/lua/vim/lsp/inlay_hint.lua b/runtime/lua/vim/lsp/inlay_hint.lua
index 4483b083de..61059180fe 100644
--- a/runtime/lua/vim/lsp/inlay_hint.lua
+++ b/runtime/lua/vim/lsp/inlay_hint.lua
@@ -43,17 +43,16 @@ function M.on_inlayhint(err, result, ctx, _)
return
end
local bufnr = assert(ctx.bufnr)
- if util.buf_versions[bufnr] ~= ctx.version then
+ if
+ util.buf_versions[bufnr] ~= ctx.version
+ or not result
+ or not api.nvim_buf_is_loaded(bufnr)
+ or not bufstates[bufnr].enabled
+ then
return
end
local client_id = ctx.client_id
- if not result then
- return
- end
local bufstate = bufstates[bufnr]
- if not bufstate.enabled then
- return
- end
if not (bufstate.client_hints and bufstate.version) then
bufstate.client_hints = vim.defaulttable()
bufstate.version = ctx.version