From c1af122a92b0d4f82aca87e598cb7ea734eea37c Mon Sep 17 00:00:00 2001 From: Mitchell Hingley Date: Thu, 3 Sep 2026 14:50:34 -0400 Subject: [PATCH] debugging --- lazy-lock.json | 39 ++++++++++++++----------- lua/config/keymaps.lua | 8 ++++++ lua/plugins/debugger.lua | 62 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 92 insertions(+), 17 deletions(-) create mode 100644 lua/plugins/debugger.lua diff --git a/lazy-lock.json b/lazy-lock.json index 4e1d342..2f178b5 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,45 +1,50 @@ { "Aquavium.nvim": { "branch": "main", "commit": "d007badfa5920cb50e136d30a3edf4342093d6b5" }, - "alpha-nvim": { "branch": "main", "commit": "6c6a89d5b068b5251c8bdf0dd57bb921bcfeeb09" }, + "alpha-nvim": { "branch": "main", "commit": "4ba26e41990c11620c96c0e1cff20eab65efde4a" }, "barbar.nvim": { "branch": "master", "commit": "53b5a2f34b68875898f0531032fbf090e3952ad7" }, "blink.cmp": { "branch": "main", "commit": "78336bc89ee5365633bcf754d93df01678b5c08f" }, - "bluloco.nvim": { "branch": "main", "commit": "424f5ea3c5f92423cbb8e32941e86919005fb4ab" }, - "codecompanion.nvim": { "branch": "main", "commit": "5716758b83dc2a652574cc6cb1b09e2f129e1f64" }, - "conform.nvim": { "branch": "master", "commit": "619363c30309d29ffa631e67c8183f2a72caa373" }, + "bluloco.nvim": { "branch": "main", "commit": "294aa5ac5e639f36ab5db9729ac7583c37d896dc" }, + "codecompanion.nvim": { "branch": "main", "commit": "d4c00c29ffa49a9eda117099916168e32aa12e09" }, + "conform.nvim": { "branch": "master", "commit": "016802de402556da54c36bd7359b441266b01cdd" }, "contextfiles.nvim": { "branch": "main", "commit": "d5d0525c32777366e5c415fdb682444ce9f753f8" }, "dracula.nvim": { "branch": "main", "commit": "ae752c13e95fb7c5f58da4b5123cb804ea7568ee" }, "dressing.nvim": { "branch": "master", "commit": "2d7c2db2507fa3c4956142ee607431ddb2828639" }, - "everforest-nvim": { "branch": "main", "commit": "d235ca0aa6a29546e661a020e2618612acbbffbe" }, + "everforest-nvim": { "branch": "main", "commit": "a0e9edc57379e8feafc6ba207c26dbb12fc1b6d8" }, "farba.nvim": { "branch": "main", "commit": "a15528695f38a44ba2974b9aae5d6ddf8c694ea2" }, - "fidget.nvim": { "branch": "main", "commit": "6f793b2bcd2d35e201c09520f698bb763220908a" }, + "fidget.nvim": { "branch": "main", "commit": "9e0201673e08e997e7cf52afca5565c70bd117f3" }, "friendly-snippets": { "branch": "main", "commit": "6cd7280adead7f586db6fccbd15d2cac7e2188b9" }, - "fzf-lua": { "branch": "main", "commit": "532d463f5c83595192fe740572d8fd6902b2217a" }, - "gitsigns.nvim": { "branch": "main", "commit": "31d6fb2d618bca1482b9f274751ead5f03461408" }, + "fzf-lua": { "branch": "main", "commit": "05e44d38de0a79c11fba5f7bf8138791b1dbdd1e" }, + "gitsigns.nvim": { "branch": "main", "commit": "5be654f2232c10ddcad19c1607a67b6b4b78fc29" }, "gruvbox-material": { "branch": "master", "commit": "11d779b26a9ab2b3db8c22c6ac9fb6e8ed4fea79" }, - "indent-blankline.nvim": { "branch": "master", "commit": "d28a3f70721c79e3c5f6693057ae929f3d9c0a03" }, + "indent-blankline.nvim": { "branch": "master", "commit": "3b1ee1854c1067c34cad2423eb78e280d4069e01" }, "kanagawa.nvim": { "branch": "master", "commit": "bb85e4bfc8d89b0e62c8fa53ccdd13d12e2f77b3" }, "lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" }, "lazygit.nvim": { "branch": "main", "commit": "a04ad0dbc725134edbee3a5eea29290976695357" }, "lualine.nvim": { "branch": "master", "commit": "221ce6b2d999187044529f49da6554a92f740a96" }, "lush.nvim": { "branch": "main", "commit": "9c60ec2279d62487d942ce095e49006af28eed6e" }, - "mason-lspconfig.nvim": { "branch": "main", "commit": "7adc933dabcc7c86ae6b07aff7ee68eac398491f" }, + "mason-lspconfig.nvim": { "branch": "main", "commit": "40276c4df7e6bdce6801d6c035c6227f9115a855" }, + "mason-nvim-dap.nvim": { "branch": "main", "commit": "9a10e096703966335bd5c46c8c875d5b0690dade" }, "mason-tool-installer.nvim": { "branch": "main", "commit": "443f1ef8b5e6bf47045cb2217b6f748a223cf7dc" }, "mason.nvim": { "branch": "main", "commit": "2a6940af80375532e5e9e7c1f2fc6319a1b7a69d" }, "material.nvim": { "branch": "main", "commit": "92f7366a9315cd386bc4fa4d716fde375dda210f" }, "mini.icons": { "branch": "main", "commit": "98faae31e9be1cc054ae63485e58ceb185efcad0" }, "neovim": { "branch": "main", "commit": "ff483051a47e27d84bdef47703538df1ed9f4a47" }, "noice.nvim": { "branch": "main", "commit": "7bfd942445fb63089b59f97ca487d605e715f155" }, - "nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" }, - "nvim-cmp": { "branch": "main", "commit": "a1d504892f2bc56c2e79b65c6faded2fd21f3eca" }, + "nui.nvim": { "branch": "main", "commit": "10fc361835c856ba4233ef5ea135b919bf3dce97" }, + "nvim-cmp": { "branch": "main", "commit": "2ffe79f1f021def8dd1fcd81deb16f1bb0d989f3" }, "nvim-colorizer.lua": { "branch": "master", "commit": "a065833f35a3a7cc3ef137ac88b5381da2ba302e" }, - "nvim-lspconfig": { "branch": "master", "commit": "b89138d9af0a96e6048e202a15765fc6b6416bd4" }, + "nvim-dap": { "branch": "master", "commit": "c9a0738e45f1bd41d792a126941348dce661cf9b" }, + "nvim-dap-ui": { "branch": "master", "commit": "cc9dd33aade7f20bae414d0cba163bc60d4d4b43" }, + "nvim-dap-virtual-text": { "branch": "master", "commit": "fbdb48c2ed45f4a8293d0d483f7730d24467ccb6" }, + "nvim-lspconfig": { "branch": "master", "commit": "85e732c62ac59ab7c12df71ddd020baa87948390" }, + "nvim-nio": { "branch": "master", "commit": "edcc181a875301dd21840189aa2f2f9ad69fc172" }, "nvim-notify": { "branch": "master", "commit": "8701bece920b38ea289b457f902e2ad184131a5d" }, - "nvim-treesitter": { "branch": "main", "commit": "7248feaca45e4d944591497964bc19afa89ad1c6" }, - "nvim-web-devicons": { "branch": "master", "commit": "0ca28b61a04fe7426cefbdd52c2647ef0e335b5f" }, + "nvim-treesitter": { "branch": "main", "commit": "427e9222363d07c32d6db6169e4049c28d58d141" }, + "nvim-web-devicons": { "branch": "master", "commit": "5f032a85be210cd1c6ac98861eb3b187ff3bd5eb" }, "oil.nvim": { "branch": "master", "commit": "b73018b75affd13fa38e2fc94ef753b465f770d7" }, "plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" }, - "render-markdown.nvim": { "branch": "main", "commit": "5adf0895310c1904e5abfaad40a2baad7fe44a07" }, - "telescope.nvim": { "branch": "master", "commit": "427b576c16792edad01a92b89721d923c19ad60f" }, + "render-markdown.nvim": { "branch": "main", "commit": "4663eb3ecd538bd5062628fb6d95bbe6bdca78f6" }, + "telescope.nvim": { "branch": "master", "commit": "40aedd8a68c78a656a10a8d62d80c54af59420fb" }, "venv-selector.nvim": { "branch": "main", "commit": "cc4bb3975de8835291f9bb45889e96c6b2795fc4" }, "vesper.nvim": { "branch": "main", "commit": "1717b1ad657c94bec3fc2bdebb0c55452d9fe46d" }, "vim-sleuth": { "branch": "master", "commit": "be69bff86754b1aa5adcbb527d7fcd1635a84080" }, diff --git a/lua/config/keymaps.lua b/lua/config/keymaps.lua index f41a1fc..97cd454 100644 --- a/lua/config/keymaps.lua +++ b/lua/config/keymaps.lua @@ -36,3 +36,11 @@ vim.keymap.set("n", "a", ":Alpha", {desc = "Open Alpha welcome --CONFORM vim.keymap.set("n", "f", ":lua require('conform').format()") + +--DEBUGGING +vim.keymap.set("n", "cdb", dap.toggle_breakpoint, { desc = "Debug: Toggle Breakpoint" }) +vim.keymap.set("n", "cdc", dap.continue, { desc = "Debug: Start/Continue" }) +vim.keymap.set("n", "cdi", dap.step_into, { desc = "Debug: Step Into" }) +vim.keymap.set("n", "cdo", dap.step_over, { desc = "Debug: Step Over" }) +vim.keymap.set("n", "cdO", dap.step_out, { desc = "Debug: Step Out" }) +vim.keymap.set("n", "cdt", dap.terminate, { desc = "Debug: Terminate" }) diff --git a/lua/plugins/debugger.lua b/lua/plugins/debugger.lua new file mode 100644 index 0000000..5dad865 --- /dev/null +++ b/lua/plugins/debugger.lua @@ -0,0 +1,62 @@ +return { + "mfussenegger/nvim-dap", + dependencies = { + "rcarriga/nvim-dap-ui", + "theHamsta/nvim-dap-virtual-text", + "nvim-neotest/nvim-nio", + "williamboman/mason.nvim", + "jay-babu/mason-nvim-dap.nvim", + }, + config = function() + local dap = require("dap") + local dapui = require("dapui") + + -- Initialize UI and virtual text components + dapui.setup() + require("nvim-dap-virtual-text").setup() + + -- Automatically manage debugger installations via Mason + require("mason-nvim-dap").setup({ + ensure_installed = { "codelldb" }, -- Auto-installs CodeLLDB + automatic_installation = true, + }) + + -- Automatically open/close DAP UI panels + dap.listeners.after.event_initialized["dapui_config"] = function() dapui.open() end + dap.listeners.before.event_terminated["dapui_config"] = function() dapui.close() end + dap.listeners.before.event_exited["dapui_config"] = function() dapui.close() end + + -- Step 2 & 3 configurations will go here... + -- Define the adapter connection + dap.adapters.codelldb = { + type = 'server', + port = "${port}", + executable = { + -- Adjust this path if Mason uses a different default location on your OS + command = vim.fn.stdpath("data") .. "/mason/bin/codelldb", + args = {"--port", "${port}"}, + } + } + + -- Configure C++ configurations + dap.configurations.cpp = { + { + name = "Launch file", + type = "codelldb", + request = "launch", + program = function() + return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file') + end, + cwd = '${workspaceFolder}', + stopOnEntry = false, + args = {}, + }, + } + + -- Re-use C++ configuration for C language + dap.configurations.c = dap.configurations.cpp + + + end +} +