aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp/codelens.lua
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2022-05-05 18:50:12 +0200
committerGitHub <noreply@github.com>2022-05-05 18:50:12 +0200
commit94eb72cc44fee4cae7a41cb1ff5fb21f81976658 (patch)
tree7df203fbcf80f232861aefc64a51cc068017391d /runtime/lua/vim/lsp/codelens.lua
parentb2fb3614b05f2c2f5f65e8300f4da548e6095b61 (diff)
downloadrneovim-94eb72cc44fee4cae7a41cb1ff5fb21f81976658.tar.gz
rneovim-94eb72cc44fee4cae7a41cb1ff5fb21f81976658.tar.bz2
rneovim-94eb72cc44fee4cae7a41cb1ff5fb21f81976658.zip
fix(lsp): make sure to always reset active codelens refreshes (#18331)
This fixes issues where subsequent calls to vim.lsp.codelens.refresh() would have no effect due to the buffer not getting cleared from the active_refresh table. Examples of how such scenarios would occur are: - A textDocument/codeLens result yielded an error. - The 'textDocument/codeLens' handler was overriden in such a way that it no longer called vim.lsp.codelens.on_codelens().
Diffstat (limited to 'runtime/lua/vim/lsp/codelens.lua')
-rw-r--r--runtime/lua/vim/lsp/codelens.lua11
1 files changed, 8 insertions, 3 deletions
diff --git a/runtime/lua/vim/lsp/codelens.lua b/runtime/lua/vim/lsp/codelens.lua
index 9eb64c9a2e..99695d2ed1 100644
--- a/runtime/lua/vim/lsp/codelens.lua
+++ b/runtime/lua/vim/lsp/codelens.lua
@@ -1,4 +1,5 @@
local util = require('vim.lsp.util')
+local log = require('vim.lsp.log')
local api = vim.api
local M = {}
@@ -214,7 +215,11 @@ end
--- |lsp-handler| for the method `textDocument/codeLens`
---
function M.on_codelens(err, result, ctx, _)
- assert(not err, vim.inspect(err))
+ if err then
+ active_refreshes[ctx.bufnr] = nil
+ local _ = log.error() and log.error("codelens", err)
+ return
+ end
M.save(result, ctx.bufnr, ctx.client_id)
@@ -222,8 +227,8 @@ function M.on_codelens(err, result, ctx, _)
-- once resolved.
M.display(result, ctx.bufnr, ctx.client_id)
resolve_lenses(result, ctx.bufnr, ctx.client_id, function()
- M.display(result, ctx.bufnr, ctx.client_id)
active_refreshes[ctx.bufnr] = nil
+ M.display(result, ctx.bufnr, ctx.client_id)
end)
end
@@ -245,7 +250,7 @@ function M.refresh()
return
end
active_refreshes[bufnr] = true
- vim.lsp.buf_request(0, 'textDocument/codeLens', params)
+ vim.lsp.buf_request(0, 'textDocument/codeLens', params, M.on_codelens)
end