]> git.rmz.io Git - dotfiles.git/commitdiff
lazyvim: absorb/update neotest
authorSamir Benmendil <me@rmz.io>
Sat, 1 Mar 2025 16:37:06 +0000 (16:37 +0000)
committerSamir Benmendil <me@rmz.io>
Sun, 2 Mar 2025 16:17:49 +0000 (16:17 +0000)
nvim/lua/plugins/test.lua

index 9e425c653dff133e48838a84ffc9fd30613c7799..9ed3fc498be53ff5f5addb2565fbaf400c2ae2f3 100644 (file)
@@ -1,11 +1,14 @@
 return {
 return {
-  {
-    "nvim-neotest/neotest",
+  { "nvim-neotest/neotest",
+    dependencies = { "nvim-neotest/nvim-nio" },
     opts = {
     opts = {
+      adapters = {},
       status = { virtual_text = true },
       output = { open_on_run = true },
       quickfix = {
         open = function()
       status = { virtual_text = true },
       output = { open_on_run = true },
       quickfix = {
         open = function()
+          -- TODO: review if I'd prefer to just use quickfix here
+          --    vim.cmd("copen")
           require("trouble").open({ mode = "quickfix", focus = false })
         end,
       },
           require("trouble").open({ mode = "quickfix", focus = false })
         end,
       },
@@ -51,6 +54,7 @@ return {
         return {}
       end
 
         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
       if opts.adapters then
         local adapters = {}
         for name, config in pairs(opts.adapters or {}) do
@@ -65,8 +69,11 @@ return {
               local meta = getmetatable(adapter)
               if adapter.setup then
                 adapter.setup(config)
               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
               elseif meta and meta.__call then
-                adapter(config)
+                adapter = adapter(config)
               else
                 error("Adapter " .. name .. " does not support setup")
               end
               else
                 error("Adapter " .. name .. " does not support setup")
               end
@@ -81,13 +88,16 @@ return {
     end,
     -- stylua: ignore
     keys = {
     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>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>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" },
     },
   },
   {
     },
   },
   {