51 lines
1.1 KiB
Lua
51 lines
1.1 KiB
Lua
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 } },
|
|
},
|
|
}
|