return {
- {
- "nvim-neotest/neotest",
+ { "nvim-neotest/neotest",
+ dependencies = { "nvim-neotest/nvim-nio" },
opts = {
+ adapters = {},
status = { virtual_text = true },
output = { open_on_run = true },
- quickfix = {
- open = function()
- require("trouble").open({ mode = "quickfix", focus = false })
- end,
- },
+ quickfix = { enabled = true },
},
config = function(_, opts)
local neotest_ns = vim.api.nvim_create_namespace("neotest")
return {}
end
+ -- NOTE: support setting up test adapters in lang
if opts.adapters then
local adapters = {}
for name, config in pairs(opts.adapters or {}) do
local meta = getmetatable(adapter)
if adapter.setup then
adapter.setup(config)
+ elseif adapter.adapter then
+ adapter.adapter(config)
+ adapter = adapter.adapter
elseif meta and meta.__call then
- adapter(config)
+ adapter = adapter(config)
else
error("Adapter " .. name .. " does not support setup")
end
end,
-- stylua: ignore
keys = {
+ {"<leader>t", "", desc = "+test"},
{ "<leader>tt", function() require("neotest").run.run(vim.fn.expand("%")) end, desc = "Run File" },
{ "<leader>tT", function() require("neotest").run.run(vim.loop.cwd()) end, desc = "Run All Test Files" },
{ "<leader>tr", function() require("neotest").run.run() end, desc = "Run Nearest" },
+ { "<leader>tl", function() require("neotest").run.run_last() end, desc = "Run Last" },
{ "<leader>ts", function() require("neotest").summary.toggle() end, desc = "Toggle Summary" },
{ "<leader>to", function() require("neotest").output.open({ enter = true, auto_close = true }) end, desc = "Show Output" },
{ "<leader>tO", function() require("neotest").output_panel.toggle() end, desc = "Toggle Output Panel" },
{ "<leader>tS", function() require("neotest").run.stop() end, desc = "Stop" },
+ { "<leader>tw", function() require("neotest").watch.toggle(vim.fn.expand("%")) end, desc = "Toggle Watch" },
},
},
{