return { "nvim-neotest/neotest", dependencies = { "nvim-neotest/nvim-nio", "nvim-lua/plenary.nvim", "antoinemadec/FixCursorHold.nvim", "nvim-treesitter/nvim-treesitter", "nvim-neotest/neotest-go", "olimorris/neotest-phpunit", { "folke/which-key.nvim", optional = true, opts = { defaults = { ["t"] = { name = "+test" }, }, }, }, }, keys = { {"tn", ":lua require('neotest').run.run()", desc = "test nearest", silent = true}, {"tf", ":lua require('neotest').run.run(vim.fn.expand('%'))", desc = "test file"}, {"ta", ":lua require('neotest').output_panel.open():lua require('neotest').run.run({suite = true})", desc = "test all"}, {"ts", ":lua require('neotest').run.stop()", desc = "stop test"}, {"tq", ":lua require('neotest').output_panel.close()", desc = "close output window"}, {"te", ":Neotest summary", desc = "Open test explorer"} }, opts = function() local icons = require('config.icons').test return { adapters = { require("neotest-go")({ recursive_run = true }), require("neotest-phpunit") }, icons = { child_indent = "│", child_prefix = "├", collapsed = "─", expanded = "┐", failed = icons.failed, final_child_indent = " ", final_child_prefix = "└", non_collapsible = "─", passed = icons.ok, running = icons.running, skipped = icons.skipped, unknown = icons.unknown, watching = icons.watch }, summery = { open = "botleft vsplit" } } end }