diff --git a/lua/lazyvim/plugins/extras/lang/python.lua b/lua/lazyvim/plugins/extras/lang/python.lua index 8e4f942d..811bd27f 100644 --- a/lua/lazyvim/plugins/extras/lang/python.lua +++ b/lua/lazyvim/plugins/extras/lang/python.lua @@ -53,15 +53,7 @@ return { keys = { { "co", - function() - vim.lsp.buf.code_action({ - apply = true, - context = { - only = { "source.organizeImports" }, - diagnostics = {}, - }, - }) - end, + LazyVim.lsp.action["source.organizeImports"], desc = "Organize Imports", }, }, diff --git a/lua/lazyvim/plugins/extras/lang/svelte.lua b/lua/lazyvim/plugins/extras/lang/svelte.lua index cf824dda..adb40741 100644 --- a/lua/lazyvim/plugins/extras/lang/svelte.lua +++ b/lua/lazyvim/plugins/extras/lang/svelte.lua @@ -31,15 +31,7 @@ return { keys = { { "co", - function() - vim.lsp.buf.code_action({ - apply = true, - context = { - only = { "source.organizeImports" }, - diagnostics = {}, - }, - }) - end, + LazyVim.lsp.action["source.organizeImports"], desc = "Organize Imports", }, }, diff --git a/lua/lazyvim/plugins/extras/lang/typescript.lua b/lua/lazyvim/plugins/extras/lang/typescript.lua index 482af408..73da5520 100644 --- a/lua/lazyvim/plugins/extras/lang/typescript.lua +++ b/lua/lazyvim/plugins/extras/lang/typescript.lua @@ -85,30 +85,22 @@ return { }, { "co", - function() - require("vtsls").commands.organize_imports(0) - end, + LazyVim.lsp.action["source.organizeImports"], desc = "Organize Imports", }, { "cM", - function() - require("vtsls").commands.add_missing_imports(0) - end, + LazyVim.lsp.action["source.addMissingImports.ts"], desc = "Add missing imports", }, { "cu", - function() - require("vtsls").commands.remove_unused_imports(0) - end, + LazyVim.lsp.action["source.removeUnused.ts"], desc = "Remove unused imports", }, { "cD", - function() - require("vtsls").commands.fix_all(0) - end, + LazyVim.lsp.action["source.fixAll.ts"], desc = "Fix all diagnostics", }, { diff --git a/lua/lazyvim/plugins/lsp/keymaps.lua b/lua/lazyvim/plugins/lsp/keymaps.lua index 3f2bd690..403c3db9 100644 --- a/lua/lazyvim/plugins/lsp/keymaps.lua +++ b/lua/lazyvim/plugins/lsp/keymaps.lua @@ -27,21 +27,7 @@ function M.get() { "cC", vim.lsp.codelens.refresh, desc = "Refresh & Display Codelens", mode = { "n" }, has = "codeLens" }, { "cR", LazyVim.lsp.rename_file, desc = "Rename File", mode ={"n"}, has = { "workspace/didRenameFiles", "workspace/willRenameFiles" } }, { "cr", vim.lsp.buf.rename, desc = "Rename", has = "rename" }, - { - "cA", - function() - vim.lsp.buf.code_action({ - context = { - only = { - "source", - }, - diagnostics = {}, - }, - }) - end, - desc = "Source Action", - has = "codeAction", - }, + { "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", diff --git a/lua/lazyvim/util/lsp.lua b/lua/lazyvim/util/lsp.lua index b68f7349..6b2adae4 100644 --- a/lua/lazyvim/util/lsp.lua +++ b/lua/lazyvim/util/lsp.lua @@ -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