diff --git a/nvim/.config/nvim/README.md b/nvim/.config/nvim/README.md index a84fb7f..687d555 100644 --- a/nvim/.config/nvim/README.md +++ b/nvim/.config/nvim/README.md @@ -93,6 +93,9 @@ Useful LSP commands: - `gD` go to declaration - `grd` list references - `grn` rename symbol +- `ca` show code actions +- `cf` apply quick fixes +- `cs` show source actions - `` trigger completion Diagnostics: diff --git a/nvim/.config/nvim/lua/romanzy/keymaps.lua b/nvim/.config/nvim/lua/romanzy/keymaps.lua index 8c86768..918bcb5 100644 --- a/nvim/.config/nvim/lua/romanzy/keymaps.lua +++ b/nvim/.config/nvim/lua/romanzy/keymaps.lua @@ -100,10 +100,26 @@ vim.api.nvim_create_autocmd("LspAttach", { callback = function(ev) map("n", "gd", vim.lsp.buf.definition, { buffer = ev.buf, desc = "goto definition" }) map("n", "gD", vim.lsp.buf.declaration, { buffer = ev.buf, desc = "goto declaration" }) - map("n", "gfr", vim.lsp.buf.references, { buffer = ev.buf, desc = "list references" }) - map("n", "grd", vim.lsp.buf.references, { buffer = ev.buf, desc = "list references" }) - map("n", "grn", rename_without_default, { buffer = ev.buf, desc = "rename symbol from zero" }) - map("n", "gRN", vim.lsp.buf.rename, { buffer = ev.buf, desc = "rename symbol" }) + map("n", "gfr", vim.lsp.buf.references, { buffer = ev.buf, desc = "find references" }) + map("n", "grn", rename_without_default, { buffer = ev.buf, desc = "rename symbol completely" }) + map("n", "gRN", vim.lsp.buf.rename, { buffer = ev.buf, desc = "rename symbol starting with whatever is there" }) + + map({ "n", "x" }, "ca", vim.lsp.buf.code_action, { buffer = ev.buf, desc = "code actions" }) + map("n", "cf", function() + vim.lsp.buf.code_action({ + apply = true, + context = { + only = { "quickfix" }, + }, + }) + end, { buffer = ev.buf, desc = "quick fixes" }) + map({ "n", "x" }, "cs", function() + vim.lsp.buf.code_action({ + context = { + only = { "source" }, + }, + }) + end, { buffer = ev.buf, desc = "source actions" }) end, })