feat(nvim): add dlv shortcut and mapping
This commit is contained in:
parent
ef2ed2dcae
commit
e6b1ac8554
@ -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 })
|
||||
|
Loading…
x
Reference in New Issue
Block a user