aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp/semantic_tokens.lua
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/lua/vim/lsp/semantic_tokens.lua')
-rw-r--r--runtime/lua/vim/lsp/semantic_tokens.lua11
1 files changed, 9 insertions, 2 deletions
diff --git a/runtime/lua/vim/lsp/semantic_tokens.lua b/runtime/lua/vim/lsp/semantic_tokens.lua
index 619f7f1110..9aa93862bc 100644
--- a/runtime/lua/vim/lsp/semantic_tokens.lua
+++ b/runtime/lua/vim/lsp/semantic_tokens.lua
@@ -294,9 +294,16 @@ function STHighlighter:send_request()
local c = vim.lsp.get_client_by_id(ctx.client_id)
local bufnr = assert(ctx.bufnr)
local highlighter = STHighlighter.active[bufnr]
- if not err and c and highlighter then
- coroutine.wrap(STHighlighter.process_response)(highlighter, response, c, version)
+ if not (c and highlighter) then
+ return
end
+
+ if err then
+ highlighter.client_state[c.id].active_request = {}
+ return
+ end
+
+ coroutine.wrap(STHighlighter.process_response)(highlighter, response, c, version)
end, self.bufnr)
if success then