aboutsummaryrefslogtreecommitdiffstats
path: root/lua/alpha
diff options
context:
space:
mode:
Diffstat (limited to 'lua/alpha')
-rw-r--r--lua/alpha/test_menu.lua48
1 files changed, 48 insertions, 0 deletions
diff --git a/lua/alpha/test_menu.lua b/lua/alpha/test_menu.lua
new file mode 100644
index 0000000..5b3e5a5
--- /dev/null
+++ b/lua/alpha/test_menu.lua
@@ -0,0 +1,48 @@
+local hydra = require "hydra"
+
+local hint = [[
+ Vim Tests
+ _n_: Near test _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>" },
+ { "f", ":TestFile<CR>" },
+ { "s", ":TestSuit<CR>" },
+ { "l", ":TestLast<CR>" },
+ { "g", ":TestVisit<CR>" },
+ { "w", startAutoCommand },
+ { "p", stopAutoCommand },
+ { "<Esc>", nil, { exit = true } },
+ },
+}