------------------------------------------------------------------------------- -- - 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 vim.api.nvim_create_user_command("PlenaryTestFile", function() last_path = vim.fn.expand("%:p") require("plenary.test_harness").test_directory(last_path) end, {}) 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, })