feat(lsp): simpler API to deal with code actions

This commit is contained in:
Folke Lemaitre
2024-06-05 22:18:14 +02:00
parent e0a0123b18
commit 1bd4d2fc72
5 changed files with 20 additions and 45 deletions

View File

@ -53,15 +53,7 @@ return {
keys = {
{
"<leader>co",
function()
vim.lsp.buf.code_action({
apply = true,
context = {
only = { "source.organizeImports" },
diagnostics = {},
},
})
end,
LazyVim.lsp.action["source.organizeImports"],
desc = "Organize Imports",
},
},

View File

@ -31,15 +31,7 @@ return {
keys = {
{
"<leader>co",
function()
vim.lsp.buf.code_action({
apply = true,
context = {
only = { "source.organizeImports" },
diagnostics = {},
},
})
end,
LazyVim.lsp.action["source.organizeImports"],
desc = "Organize Imports",
},
},

View File

@ -85,30 +85,22 @@ return {
},
{
"<leader>co",
function()
require("vtsls").commands.organize_imports(0)
end,
LazyVim.lsp.action["source.organizeImports"],
desc = "Organize Imports",
},
{
"<leader>cM",
function()
require("vtsls").commands.add_missing_imports(0)
end,
LazyVim.lsp.action["source.addMissingImports.ts"],
desc = "Add missing imports",
},
{
"<leader>cu",
function()
require("vtsls").commands.remove_unused_imports(0)
end,
LazyVim.lsp.action["source.removeUnused.ts"],
desc = "Remove unused imports",
},
{
"<leader>cD",
function()
require("vtsls").commands.fix_all(0)
end,
LazyVim.lsp.action["source.fixAll.ts"],
desc = "Fix all diagnostics",
},
{

View File

@ -27,21 +27,7 @@ function M.get()
{ "<leader>cC", vim.lsp.codelens.refresh, desc = "Refresh & Display Codelens", mode = { "n" }, has = "codeLens" },
{ "<leader>cR", LazyVim.lsp.rename_file, desc = "Rename File", mode ={"n"}, has = { "workspace/didRenameFiles", "workspace/willRenameFiles" } },
{ "<leader>cr", vim.lsp.buf.rename, desc = "Rename", has = "rename" },
{
"<leader>cA",
function()
vim.lsp.buf.code_action({
context = {
only = {
"source",
},
diagnostics = {},
},
})
end,
desc = "Source Action",
has = "codeAction",
},
{ "<leader>cA", LazyVim.lsp.action.source, desc = "Source Action", has = "codeAction" },
{ "]]", function() LazyVim.lsp.words.jump(vim.v.count1) end, has = "documentHighlight",
desc = "Next Reference", cond = function() return LazyVim.lsp.words.enabled end },
{ "[[", function() LazyVim.lsp.words.jump(-vim.v.count1) end, has = "documentHighlight",

View File

@ -324,4 +324,17 @@ function M.words.jump(count, cycle)
end
end
M.action = setmetatable({}, {
__index = function(_, action)
return function()
vim.lsp.buf.code_action({
apply = true,
context = {
only = { action },
diagnostics = {},
},
})
end
end,
})
return M