mirror of
https://github.com/macocianradu/setup.git
synced 2026-07-16 02:28:47 +00:00
added go dap
This commit is contained in:
@@ -10,6 +10,7 @@ dap.listeners.after.event_exited["dapui_config"] = function() dapui.close() end
|
||||
local dotnet = require("dap.dap-dotnet")
|
||||
local odoo = require("dap.dap-odoo")
|
||||
local haskell = require("dap.dap-haskell")
|
||||
local go = require("dap.dap-go")
|
||||
|
||||
|
||||
vim.keymap.set("n", "<leader>5", function()
|
||||
@@ -39,7 +40,13 @@ vim.keymap.set("n", "<leader>b", function() dap.toggle_breakpoint() end)
|
||||
vim.keymap.set("n", "<leader>B", function() dap.set_breakpoint(vim.fn.input("Breakpoint condition: ")) end)
|
||||
vim.keymap.set("n", "<leader>qd", function() dap.terminate() end)
|
||||
vim.keymap.set("n", "<leader>rd", function() dap.restart() end)
|
||||
vim.keymap.set("n", "<leader>dt", odoo.run_odoo_test_at_cursor, { desc = "Debug Odoo Test unde Cursor" })
|
||||
vim.keymap.set("n", "<leader>dt", function()
|
||||
if vim.bo.filetype == "go" then
|
||||
go.debug_test_at_cursor()
|
||||
else
|
||||
odoo.run_odoo_test_at_cursor()
|
||||
end
|
||||
end, { desc = "Debug Test under Cursor" })
|
||||
|
||||
dap.configurations.python = {
|
||||
{
|
||||
|
||||
@@ -0,0 +1,115 @@
|
||||
local dap = require("dap")
|
||||
|
||||
local M = {}
|
||||
|
||||
-- Locate the delve binary (prefer mason, fall back to PATH).
|
||||
local function dlv_command()
|
||||
local mason = vim.fn.expand("$HOME/.local/share/nvim/mason/bin/dlv")
|
||||
if vim.fn.filereadable(mason) == 1 then
|
||||
return mason
|
||||
end
|
||||
return "dlv"
|
||||
end
|
||||
|
||||
-- Adapter: run delve in DAP server mode on a free port.
|
||||
dap.adapters.go = {
|
||||
type = "server",
|
||||
port = "${port}",
|
||||
executable = {
|
||||
command = dlv_command(),
|
||||
args = { "dap", "-l", "127.0.0.1:${port}" },
|
||||
},
|
||||
}
|
||||
|
||||
-- Configurations
|
||||
dap.configurations.go = {
|
||||
{
|
||||
type = "go",
|
||||
request = "launch",
|
||||
name = "Debug (current file)",
|
||||
program = "${file}",
|
||||
},
|
||||
{
|
||||
type = "go",
|
||||
request = "launch",
|
||||
name = "Debug package",
|
||||
program = "${fileDirname}",
|
||||
},
|
||||
{
|
||||
type = "go",
|
||||
request = "launch",
|
||||
name = "Debug package (with args)",
|
||||
program = "${fileDirname}",
|
||||
args = function()
|
||||
local input = vim.fn.input("Args: ")
|
||||
return vim.split(input, " ", { trimempty = true })
|
||||
end,
|
||||
},
|
||||
{
|
||||
type = "go",
|
||||
request = "launch",
|
||||
mode = "test",
|
||||
name = "Debug test (current file)",
|
||||
program = "${file}",
|
||||
},
|
||||
{
|
||||
type = "go",
|
||||
request = "launch",
|
||||
mode = "test",
|
||||
name = "Debug test (package)",
|
||||
program = "${fileDirname}",
|
||||
},
|
||||
{
|
||||
type = "go",
|
||||
request = "attach",
|
||||
mode = "local",
|
||||
name = "Attach to process",
|
||||
processId = require("dap.utils").pick_process,
|
||||
},
|
||||
}
|
||||
|
||||
-- Debug the test function under the cursor using delve's -test.run filter.
|
||||
local function debug_test_at_cursor()
|
||||
local ok, node = pcall(vim.treesitter.get_node)
|
||||
if not ok or not node then
|
||||
vim.notify("Tree-sitter parser not found. Ensure you are in a Go buffer.", vim.log.levels.ERROR)
|
||||
return
|
||||
end
|
||||
|
||||
local func_name = nil
|
||||
local attempts = 0
|
||||
while node do
|
||||
if node:type() == "function_declaration" then
|
||||
for child in node:iter_children() do
|
||||
if child:type() == "identifier" then
|
||||
func_name = vim.treesitter.get_node_text(child, 0)
|
||||
break
|
||||
end
|
||||
end
|
||||
break
|
||||
end
|
||||
node = node:parent()
|
||||
attempts = attempts + 1
|
||||
if attempts > 50 then
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if not func_name then
|
||||
vim.notify("Cursor is not inside a test function.", vim.log.levels.WARN)
|
||||
return
|
||||
end
|
||||
|
||||
dap.run({
|
||||
type = "go",
|
||||
request = "launch",
|
||||
mode = "test",
|
||||
name = "Debug test: " .. func_name,
|
||||
program = "${fileDirname}",
|
||||
args = { "-test.run", "^" .. func_name .. "$" },
|
||||
})
|
||||
end
|
||||
|
||||
M.debug_test_at_cursor = debug_test_at_cursor
|
||||
|
||||
return M
|
||||
Reference in New Issue
Block a user