feat(lsp): support for resolving code action command (#32704)

* fix(lsp): don't call codeAction_resolve with commands

* feat(lsp): support for resolving code action command
This commit is contained in:
Maria José Solano
2025-03-06 00:21:47 -08:00
committed by GitHub
parent 0c0352783f
commit 41b07b128c
5 changed files with 66 additions and 8 deletions

View File

@@ -4591,6 +4591,51 @@ describe('LSP', function()
eq('workspace/executeCommand', result[5].method)
eq('command:1', result[5].params.command)
end)
it('Resolves command property', function()
clear()
exec_lua(create_server_definition)
local result = exec_lua(function()
local server = _G._create_server({
capabilities = {
executeCommandProvider = {
commands = { 'command:1' },
},
codeActionProvider = {
resolveProvider = true,
},
},
handlers = {
['textDocument/codeAction'] = function(_, _, callback)
callback(nil, {
{ title = 'Code Action 1' },
})
end,
['codeAction/resolve'] = function(_, _, callback)
callback(nil, {
title = 'Code Action 1',
command = {
title = 'Command 1',
command = 'command:1',
},
})
end,
},
})
local client_id = assert(vim.lsp.start({
name = 'dummy',
cmd = server.cmd,
}))
vim.lsp.buf.code_action({ apply = true })
vim.lsp.stop_client(client_id)
return server.messages
end)
eq('codeAction/resolve', result[4].method)
eq('workspace/executeCommand', result[5].method)
eq('command:1', result[5].params.command)
end)
end)
describe('vim.lsp.commands', function()