From 12e8b4211f603b9b83110349152c7ef1563bb49d Mon Sep 17 00:00:00 2001 From: Stevan Freeborn <65925598+StevanFreeborn@users.noreply.github.com> Date: Mon, 22 Dec 2025 17:00:38 -0600 Subject: [PATCH] feat: add debugger for Go --- lua/plugins/debugging.lua | 49 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 46 insertions(+), 3 deletions(-) diff --git a/lua/plugins/debugging.lua b/lua/plugins/debugging.lua index 2282dec..7798c8a 100644 --- a/lua/plugins/debugging.lua +++ b/lua/plugins/debugging.lua @@ -244,9 +244,52 @@ return { }, } - local codelldb_path = vim.fn.has("win32") - and vim.fn.stdpath("data") .. "/mason/packages/codelldb/extension/adapter/codelldb.exe" - or vim.fn.stdpath("data") .. "/mason/packages/codelldb/extension/adapter/codelldb" + dap.adapters.delve = function(callback, config) + if config.mode == "remote" and config.request == "attach" then + callback({ + type = "server", + host = config.host or "127.0.0.1", + port = config.port or "38697", + }) + else + callback({ + type = "server", + port = "${port}", + executable = { + command = "dlv", + args = { "dap", "-l", "127.0.0.1:${port}", "--log", "--log-output=dap" }, + detached = vim.fn.has("win32") == 0, + }, + }) + end + end + + dap.configurations.go = { + { + type = "delve", + name = "Debug", + request = "launch", + program = "${file}", + }, + { + type = "delve", + name = "Debug test", + request = "launch", + mode = "test", + program = "${file}", + }, + { + type = "delve", + name = "Debug test (go.mod)", + request = "launch", + mode = "test", + program = "./${relativeFileDirname}", + }, + } + + local codelldb_path = vim.fn.has("win32") + and vim.fn.stdpath("data") .. "/mason/packages/codelldb/extension/adapter/codelldb.exe" + or vim.fn.stdpath("data") .. "/mason/packages/codelldb/extension/adapter/codelldb" dap.adapters.lldb = { type = "server",