------------------------------------------------------------------------------- -- - Vim-test and general testing config - ------------------------------------------------------------------------------- -- make test commands execute using dispatch.vim vim.g["test#strategy"] = "dispatch" vim.g["test#csharp#runner"] = "dotnettest" -- Map test running commands local opts = { silent = true } vim.keymap.set("n", "tn", ":TestNearest", opts) vim.keymap.set("n", "tf", ":TestFile", opts) 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 local function get_plenary_test_opts() if vim.g["esensar#testing#use_minimal"] then return { minimal_init = vim.g["esensar#testing#minimal_init"] or "tests/minimal.vim", } else return nil end end vim.api.nvim_create_user_command("PlenaryTestFile", function() last_path = vim.fn.expand("%:p") require("plenary.test_harness").test_directory(last_path, get_plenary_test_opts()) end, { desc = "Test current file using plenary.nvim" }) vim.api.nvim_create_user_command("PlenaryTestSuite", function() last_path = vim.fn["projectionist#path"]() require("plenary.test_harness").test_directory(last_path, get_plenary_test_opts()) end, { desc = "Run all tests using plenary.nvim" }) 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, get_plenary_test_opts()) end, { desc = "Run last run test using plenary.nvim" }) 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, { desc = "Visit latest run test using plenary.nvim" }) local au_id = vim.api.nvim_create_augroup("plenary_test_group", {}) vim.api.nvim_create_autocmd("FileType", { pattern = "lua", group = au_id, callback = function() local local_opts = { silent = true, buffer = true } vim.keymap.set("n", "tn", ":PlenaryTestFile", local_opts) vim.keymap.set("n", "tf", ":PlenaryTestFile", local_opts) vim.keymap.set("n", "ts", ":PlenaryTestSuite", local_opts) vim.keymap.set("n", "tl", ":PlenaryTestLast", local_opts) vim.keymap.set("n", "tg", ":PlenaryVisitLastTest", local_opts) end, })