From e6b1ac855429723d7d8871616cb3f45cc912975d Mon Sep 17 00:00:00 2001 From: Rob Watson Date: Mon, 28 Apr 2025 08:52:36 +0200 Subject: [PATCH] feat(nvim): add dlv shortcut and mapping --- vim/lua/test_runner.lua | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/vim/lua/test_runner.lua b/vim/lua/test_runner.lua index e35d788..d60eb26 100644 --- a/vim/lua/test_runner.lua +++ b/vim/lua/test_runner.lua @@ -28,6 +28,20 @@ _G._build_test_cmd = function() end end +_G._build_debug_cmd = function() + local bufnr = vim.fn.bufnr("%") + local filetype = vim.fn.getbufvar(bufnr, "&filetype") + if filetype ~= "go" then + vim.api.nvim_err_writeln("cannot build test command for filetype:" .. filetype) + return nil + end + + local path = vim.fn.expand("%:p") + + -- TODO: check file exists before running command + return "dlv test " .. path:gsub("^(.*)/(.*go)$", "%1") .. " -- -test.v" +end + _G.run_tests = function() local cmd = _G._build_test_cmd() if cmd == nil then @@ -105,7 +119,18 @@ _G.copy_test_cmd = function() print("Copied: " .. cmd) end +_G.copy_debug_cmd = function() + local cmd = _G._build_debug_cmd() + if cmd == nil then + return + end + + vim.fn.setreg("+", cmd) + print("Copied: " .. cmd) +end + vim.api.nvim_set_keymap("n", "cr", [[:lua _G.run_tests()]], { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "cf", [[:lua _G.focus_tests()]], { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "cq", [[:lua _G.close_tests()]], { noremap = true, silent = true }) vim.api.nvim_set_keymap("n", "cc", [[:lua _G.copy_test_cmd()]], { noremap = true, silent = true }) +vim.api.nvim_set_keymap("n", "cd", [[:lua _G.copy_debug_cmd()]], { noremap = true, silent = true })