diff --git a/symlinks/config/nvim/after/plugin/testing.lua b/symlinks/config/nvim/after/plugin/testing.lua index 35a82bd..79619e1 100644 --- a/symlinks/config/nvim/after/plugin/testing.lua +++ b/symlinks/config/nvim/after/plugin/testing.lua @@ -14,10 +14,45 @@ vim.keymap.set("n", "ts", ":TestSuite", opts) vim.keymap.set("n", "tl", ":TestLast", opts) vim.keymap.set("n", "tg", ":TestVisit", opts) +local last_path = nil + vim.api.nvim_create_user_command("PlenaryTestFile", function() - require("plenary.test_harness").test_directory(vim.fn.expand("%:p")) + last_path = vim.fn.expand("%:p") + + require("plenary.test_harness").test_directory(last_path) end, {}) -vim.api.nvim_create_user_command("PlenaryTestFileWithLocalMinInit", function() - require("plenary.test_harness").test_directory(vim.fn.expand("%:p"), { minimal_init = "tests/minimal.vim" }) +vim.api.nvim_create_user_command("PlenaryTestSuite", function() + last_path = vim.fn["projectionist#path"]() + + require("plenary.test_harness").test_directory(last_path) end, {}) + +vim.api.nvim_create_user_command("PlenaryTestLast", function() + if not last_path then + vim.notify("No plenary tests run yet! Nothing to do here", vim.log.levels.WARN) + return + end + require("plenary.test_harness").test_directory(last_path) +end, {}) + +vim.api.nvim_create_user_command("PlenaryVisitLastTest", function() + if not last_path then + vim.notify("No plenary tests run yet! Nothing to do here", vim.log.levels.WARN) + return + end + vim.cmd("edit " .. last_path) +end, {}) + +local au_id = vim.api.nvim_create_augroup("plenary_test_group", {}) +vim.api.nvim_create_autocmd("FileType", { + pattern = "lua", + group = au_id, + callback = function() + vim.keymap.set("n", "tn", ":PlenaryTestFile", opts) + vim.keymap.set("n", "tf", ":PlenaryTestFile", opts) + vim.keymap.set("n", "ts", ":PlenaryTestSuite", opts) + vim.keymap.set("n", "tl", ":PlenaryTestLast", opts) + vim.keymap.set("n", "tg", ":PlenaryVisitLastTest", opts) + end, +})