From 686a3ece75c7309247b8de1334f7d63b39ac4d55 Mon Sep 17 00:00:00 2001 From: Never Gude Date: Tue, 20 Jan 2026 00:45:49 +0100 Subject: [PATCH] add debugger support --- .config/dconf/user | Bin 35872 -> 35880 bytes .config/nvim/init.lua | 86 ++++++++++++++++++++++++++++--- .config/nvim/nvim-pack-lock.json | 8 +++ 3 files changed, 88 insertions(+), 6 deletions(-) diff --git a/.config/dconf/user b/.config/dconf/user index 36829bcdd325d49321a8be29871846b228c4c7ea..8b9cdfe0d0d0a97b6b6f07139c4f795fef225a83 100644 GIT binary patch literal 35880 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 diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua index 3520d91..2aefffb 100644 --- a/.config/nvim/init.lua +++ b/.config/nvim/init.lua @@ -58,9 +58,6 @@ vim.keymap.set({ "n" }, "", "j") vim.keymap.set({ "n" }, "", "k") vim.keymap.set({ "n" }, "", "l") -vim.keymap.set('n', 'ld', vim.lsp.buf.definition, { desc = 'vim.lsp.buf.definition()' }) -vim.keymap.set('n', 'lf', vim.lsp.buf.format, { desc = 'vim.lsp.buf.format()' }) - -- [[ Basic Autocommands ]]. -- See `:h lua-guide-autocommands`, `:h autocmd`, `:h nvim_create_autocmd()` -- Highlight when yanking (copying) text. @@ -129,6 +126,8 @@ end, { desc = "Print the git blame for the current line" }) -- 'updatetime' and when going to insert mode vim.cmd("packadd! nohlsearch") +-- [[ Language Setup ]] + -- Treat Ipe stylesheets as xml code vim.filetype.add({ extension = { @@ -138,14 +137,22 @@ vim.filetype.add({ -- Install nvim-treesitter vim.pack.add({ "https://github.com/nvim-treesitter/nvim-treesitter" }) -require("nvim-treesitter").install('latex', 'lua', 'c', 'ocaml') +require("nvim-treesitter").install('lua', 'latex', 'c', 'java', 'ocaml') -- See `:h lsp-quickstart` for more details. vim.pack.add({ "https://github.com/mason-org/mason.nvim" }) require("mason").setup() -vim.lsp.enable({ 'lua_ls', 'texlab', 'clangd', 'ocaml-lsp' }) +vim.lsp.enable({'lua_ls', 'texlab', 'clangd', 'ocaml-lsp'}) +vim.keymap.set('n', 'lf', vim.lsp.buf.format, + { desc = 'Formats a buffer using the attached language server clients.' }) +vim.keymap.set('n', 'lh', vim.lsp.buf.hover, + { desc = 'Displays hover information about the symbol under the cursor.' }) +vim.keymap.set('n', 'lr', vim.lsp.buf.rename, + { desc = 'Renames all references to the symbol under the cursor.' }) +vim.keymap.set('n', 'ld', vim.lsp.buf.definition, + { desc = 'Jumps to the definition of the symbol under the cursor.' }) vim.diagnostic.config({ signs = { @@ -165,6 +172,74 @@ vim.keymap.set("n", "dN", "]D", { desc = "Jump to last diagnostic" }) vim.keymap.set("n", "dP", "[D", { desc = "Jump to first diagnostic" }) vim.keymap.set("n", "ds", "d", { desc = "Display diagnostic on current line" }) +vim.pack.add({ "https://github.com/mfussenegger/nvim-dap" }) + +local dap = require("dap") +local dap_widgets = require("dap.ui.widgets") +local dap_sidebar_s = dap_widgets.sidebar(dap_widgets.scopes) +local dap_sidebar_f = dap_widgets.sidebar(dap_widgets.frames) + +vim.keymap.set("n", "bb", dap.toggle_breakpoint, { desc = "Toggle breakpoint"}) +vim.keymap.set("n", "bc", dap.continue, { desc = "Continue execution"}) + +dap.listeners.on_session["debug"] = function() + vim.keymap.set("n", "bs", dap_sidebar_s.toggle, { desc = "Show scopes"}) + vim.keymap.set("n", "bf", dap_sidebar_f.toggle, { desc = "Show frames"}) + + vim.keymap.set("n", "", dap.step_out, { desc = "Step out"}) + vim.keymap.set("n", "", dap.step_into, { desc = "Step into"}) + vim.keymap.set("n", "", dap.step_over, { desc = "Step over"}) + vim.keymap.set("n", "", dap.restart_frame, { desc = "Restart frame"}) +end + +dap.adapters.gdb = { + type = "executable", + command = "gdb", + args = { "--interpreter=dap", "--eval-command", "set print pretty on" } +} + +dap.configurations.c = { + { + name = "Launch", + type = "gdb", + request = "launch", + program = function() + return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file') + end, + args = {}, -- provide arguments if needed + cwd = "${workspaceFolder}", + stopAtBeginningOfMainSubprogram = false, + }, + { + name = "Select and attach to process", + type = "gdb", + request = "attach", + program = function() + return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file') + end, + pid = function() + local name = vim.fn.input('Executable name (filter): ') + return require("dap.utils").pick_process({ filter = name }) + end, + cwd = '${workspaceFolder}' + }, + { + name = 'Attach to gdbserver :1234', + type = 'gdb', + request = 'attach', + target = 'localhost:1234', + program = function() + return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file') + end, + cwd = '${workspaceFolder}' + } +} + +dap.configurations.cpp = dap.configurations.c +dap.configurations.rust = dap.configurations.c + + + -- [[ UI Configuration ]] vim.pack.add({ "https://github.com/nvim-mini/mini.completion", @@ -176,7 +251,6 @@ vim.pack.add({ "https://github.com/nvim-mini/mini.clue", "https://github.com/nvim-mini/mini.hipatterns", "https://github.com/nvim-mini/mini.notify", - }, { confirm = false }) vim.o.winborder = "none" diff --git a/.config/nvim/nvim-pack-lock.json b/.config/nvim/nvim-pack-lock.json index e0114c0..fcb5f0c 100644 --- a/.config/nvim/nvim-pack-lock.json +++ b/.config/nvim/nvim-pack-lock.json @@ -56,6 +56,14 @@ "rev": "caf23615b9b99bacc79ecd60f61c4e6a8ec18c84", "src": "https://github.com/nvim-mini/mini.tabline" }, + "nvim-dap": { + "rev": "cdfd55a133f63228c55f91378f12908cb2a78ded", + "src": "https://github.com/mfussenegger/nvim-dap" + }, + "nvim-dap-virtual-text": { + "rev": "fbdb48c2ed45f4a8293d0d483f7730d24467ccb6", + "src": "https://github.com/theHamsta/nvim-dap-virtual-text" + }, "nvim-lspconfig": { "rev": "92ee7d42320edfbb81f3cad851314ab197fa324a", "src": "https://github.com/neovim/nvim-lspconfig"