diff --git a/symlinks/config/nvim/after/plugin/testing.lua b/symlinks/config/nvim/after/plugin/testing.lua index dbc7670..d94935f 100644 --- a/symlinks/config/nvim/after/plugin/testing.lua +++ b/symlinks/config/nvim/after/plugin/testing.lua @@ -2,68 +2,49 @@ -- - Vim-test and general testing config - ------------------------------------------------------------------------------- --- make test commands execute using dispatch.vim -vim.g["test#strategy"] = "dispatch" -vim.g["test#csharp#runner"] = "dotnettest" +local neotest = require("neotest") +neotest.setup({ + adapters = { + require("neotest-rust"), + require("neotest-plenary"), + require("neotest-vim-test")({ + ignore_file_types = { "rust", "lua" }, + }), + }, +}) + +local last = nil -- 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", - } +vim.keymap.set("n", "tn", function() + last = nil + neotest.run.run() +end, opts) +vim.keymap.set("n", "tdn", function() + last = { strategy = "dap", suite = false } + neotest.run.run(last) +end, opts) +vim.keymap.set("n", "tf", function() + last = vim.fn.expand("%") + neotest.run.run(last) +end, opts) +vim.keymap.set("n", "tdf", function() + last = { vim.fn.expand("%"), strategy = "dap", suite = false } + neotest.run.run(last) +end, opts) +vim.keymap.set("n", "ts", function() + last = { suite = true } + neotest.run.run(last) +end, opts) +vim.keymap.set("n", "tds", function() + last = { strategy = "dap", suite = true } + neotest.run.run(last) +end, opts) +vim.keymap.set("n", "tl", function() + if last then + neotest.run.run(last) else - return nil + neotest.run.run() 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, -}) +end, opts) diff --git a/symlinks/config/nvim/lua/esensar/init/plugins.lua b/symlinks/config/nvim/lua/esensar/init/plugins.lua index b0d543a..7b0a58a 100644 --- a/symlinks/config/nvim/lua/esensar/init/plugins.lua +++ b/symlinks/config/nvim/lua/esensar/init/plugins.lua @@ -43,6 +43,10 @@ return require("packer").startup({ -- Tools use("direnv/direnv.vim") -- Integration with Direnv + use("nvim-neotest/neotest") -- Running tests from NeoVim + use("nvim-neotest/neotest-plenary") + use("rouge8/neotest-rust") + use("nvim-neotest/neotest-vim-test") -- vim-test plugin for neotest use("vim-test/vim-test") -- Running tests from vim use("mfussenegger/nvim-dap") -- Debug Adapter Protocol use("rcarriga/nvim-dap-ui") -- UI components for DAP diff --git a/symlinks/config/nvim/lua/esensar/lsp/servers.lua b/symlinks/config/nvim/lua/esensar/lsp/servers.lua index df0eb54..3410d7d 100644 --- a/symlinks/config/nvim/lua/esensar/lsp/servers.lua +++ b/symlinks/config/nvim/lua/esensar/lsp/servers.lua @@ -5,7 +5,9 @@ local lspconfig = require("lspconfig") require("mason").setup() require("mason-lspconfig").setup() -require("neodev").setup() +require("neodev").setup({ + library = { plugins = { "neotest" }, types = true }, +}) local common_config = require("esensar.lsp.server_config") -- Language specific LSP config overrides