[backport release-0.9] backport #25464 (#25560)

feat(lsp): fallback to code-action command on resolve failure
This commit is contained in:
Christian Clason
2023-10-09 16:39:30 +02:00
committed by GitHub
parent 4f6e4c5447
commit 837f64f98a
2 changed files with 50 additions and 4 deletions

View File

@@ -679,7 +679,7 @@ local function on_code_action_results(results, ctx, options)
-- command: string
-- arguments?: any[]
--
local client = vim.lsp.get_client_by_id(action_tuple[1])
local client = assert(vim.lsp.get_client_by_id(action_tuple[1]))
local action = action_tuple[2]
if
not action.edit
@@ -688,10 +688,14 @@ local function on_code_action_results(results, ctx, options)
then
client.request('codeAction/resolve', action, function(err, resolved_action)
if err then
vim.notify(err.code .. ': ' .. err.message, vim.log.levels.ERROR)
return
if action.command then
apply_action(action, client)
else
vim.notify(err.code .. ': ' .. err.message, vim.log.levels.ERROR)
end
else
apply_action(resolved_action, client)
end
apply_action(resolved_action, client)
end)
else
apply_action(action, client)