From fa8d03b3ffb5ae91df396f2a734ed9c93403fac3 Mon Sep 17 00:00:00 2001 From: flin16 Date: Wed, 4 Jun 2025 11:52:34 -0500 Subject: [PATCH] feat(keymaps): add toggle virtual text for dap --- lua/config/keymaps.lua | 42 +++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/lua/config/keymaps.lua b/lua/config/keymaps.lua index 33cf3f4..b60f011 100644 --- a/lua/config/keymaps.lua +++ b/lua/config/keymaps.lua @@ -1,22 +1,23 @@ -- Keymaps are automatically loaded on the VeryLazy event -- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua -- Add any additional keymaps here +local keyset = vim.keymap.set local function map_nv(lhs, rhs, opts) local modes = { "n", "v" } for _, mode in ipairs(modes) do - vim.keymap.set(mode, lhs, rhs, opts) + keyset(mode, lhs, rhs, opts) end end local function map_all_mode(lhs, rhs, opts) map_nv(lhs, rhs, opts) - vim.keymap.set("i", lhs, rhs, opts) - vim.keymap.set("t", lhs, rhs, opts) + keyset("i", lhs, rhs, opts) + keyset("t", lhs, rhs, opts) end -- TODO: make this work --- vim.keymap.set("v", "", function() +-- keyset("v", "", function() -- vim.print("Pressed"); vim.cmd('d _') -- end, { noremap = true, desc = "Backspace in normal mode" }) -vim.keymap.set("v", "x", '"_x', { noremap = true, desc = "Delete selection with Backspace" }) +keyset("v", "x", '"_x', { noremap = true, desc = "Delete selection with Backspace" }) map_all_mode("", function() require("dap").continue() end, { desc = "Dap: Continue" }) @@ -32,24 +33,27 @@ end, { desc = "Dap: Step Into" }) map_all_mode("", function() require("dap").step_out() end, { desc = "Dap: Step Out" }) -vim.keymap.set("n", "\\b", function() +keyset("n", "dv", function() + vim.cmd("DapVirtualTextToggle") +end, { desc = "Toggle virtual text of dap" }) +keyset("n", "\\b", function() require("dap").toggle_breakpoint() end, { desc = "Dap: Toggle Breakpoint" }) -vim.keymap.set("n", "\\dr", function() +keyset("n", "\\dr", function() require("dap").repl.open() end, { desc = "Dap: Open REPL" }) -vim.keymap.set({ "n", "v" }, "\\dh", function() +keyset({ "n", "v" }, "\\dh", function() require("dap.ui.widgets").hover() end, { desc = "Print variable (Hover Mode)" }) -vim.keymap.set({ "n", "v" }, "\\dp", function() +keyset({ "n", "v" }, "\\dp", function() require("dap.ui.widgets").preview() end, { desc = "Print variable (Preview Mode)" }) -- Configure Coc.nvim keymaps -vim.keymap.set("n", "rn", "(coc-rename)", { desc = "Coc: Rename" }) +keyset("n", "rn", "(coc-rename)", { desc = "Coc: Rename" }) -vim.keymap.set("v", "\\r", "(coc-codeaction-refactor-selected)", { desc = "Coc: Refactor Selected" }) -vim.keymap.set("n", "\\cl", "(coc-codelens-action)", { desc = "Coc: CodeLens Action" }) +keyset("v", "\\r", "(coc-codeaction-refactor-selected)", { desc = "Coc: Refactor Selected" }) +keyset("n", "\\cl", "(coc-codelens-action)", { desc = "Coc: CodeLens Action" }) -- Now configure shortcuts for MacOS -- if vim.g.neovide then @@ -61,16 +65,16 @@ map_all_mode("", function() end end, { desc = "Close current tab" }) map_all_mode("", function() vim.cmd("undo") end) -vim.keymap.set("i", "", '"+P') -vim.keymap.set("c", "", "+") -vim.keymap.set("n", "", '"+p', { desc = "Paste from clipboard" }) -vim.keymap.set("v", "", '"_d"+gP', { desc = "Remove the selected part and paste from system clipboard." }) -vim.keymap.set("v", "", '"+y', { desc = "Copy to clipboard in visual mode" }) -vim.keymap.set("v", "", '"+d', { desc = "Cut to clipboard" }) +keyset("i", "", '"+P') +keyset("c", "", "+") +keyset("n", "", '"+p', { desc = "Paste from clipboard" }) +keyset("v", "", '"_d"+gP', { desc = "Remove the selected part and paste from system clipboard." }) +keyset("v", "", '"+y', { desc = "Copy to clipboard in visual mode" }) +keyset("v", "", '"+d', { desc = "Cut to clipboard" }) map_nv("", "ggG", { desc = "Select all" }) -- end -- Set the keymap fg to trigger the picker --- vim.keymap.set("n", "fg", function() +-- keyset("n", "fg", function() -- local Snacks = require("snacks") -- return Snacks.picker({ -- finder = "lsp_symbols", -- Use the LSP symbols as the source