feat(nvim): add dlv shortcut and mapping

This commit is contained in:
Rob Watson 2025-04-28 08:52:36 +02:00
parent ef2ed2dcae
commit e6b1ac8554

View File

@ -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", "<leader>cr", [[:lua _G.run_tests()<cr>]], { noremap = true, silent = true })
vim.api.nvim_set_keymap("n", "<leader>cf", [[:lua _G.focus_tests()<cr>]], { noremap = true, silent = true })
vim.api.nvim_set_keymap("n", "<leader>cq", [[:lua _G.close_tests()<cr>]], { noremap = true, silent = true })
vim.api.nvim_set_keymap("n", "<leader>cc", [[:lua _G.copy_test_cmd()<cr>]], { noremap = true, silent = true })
vim.api.nvim_set_keymap("n", "<leader>cd", [[:lua _G.copy_debug_cmd()<cr>]], { noremap = true, silent = true })