diff options
Diffstat (limited to 'lua/pi/test_menu.lua')
| -rw-r--r-- | lua/pi/test_menu.lua | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/lua/pi/test_menu.lua b/lua/pi/test_menu.lua new file mode 100644 index 0000000..afe3a9e --- /dev/null +++ b/lua/pi/test_menu.lua @@ -0,0 +1,50 @@ +local hydra = require "hydra" + +local hint = [[ + Vim Tests + _n_: Near test _h_: Harpoon ^ + _f_: Current file _s_: Test Suit ^ + _l_: Test Last _g_: Visit + _w_: Watch last Test _p_: stop watch + ^ ^ _<Esc>_ ^ +]] +local auto_cmd_id = nil +local stopAutoCommand = function() + if auto_cmd_id ~= nil then + vim.api.nvim_del_autocmd(auto_cmd_id) + auto_cmd_id = nil + end +end +local startAutoCommand = function() + stopAutoCommand() + auto_cmd_id = vim.api.nvim_create_autocmd({ "BufWritePost" }, { + pattern = { "*.php", "*.feature", "*.yaml" }, + command = "TestLast", + }) +end + +hydra { + name = "vimtest", + hint = hint, + mode = "n", + config = { + color = "teal", + invoke_on_body = true, + hint = { + border = "rounded", + position = "bottom", + }, + }, + body = "<leader>t", + heads = { + { "n", ":TestNearest<CR>" }, + { "h", ":TestNearest -strategy=harpoon<CR>" }, + { "f", ":TestFile<CR>" }, + { "s", ":TestSuit<CR>" }, + { "l", ":TestLast<CR>" }, + { "g", ":TestVisit<CR>" }, + { "w", startAutoCommand }, + { "p", stopAutoCommand }, + { "<Esc>", nil, { exit = true } }, + }, +} |