diff --git a/plugins/neotest/adapters-list.nix b/plugins/neotest/adapters-list.nix index 4b099ba5..e10ac92d 100644 --- a/plugins/neotest/adapters-list.nix +++ b/plugins/neotest/adapters-list.nix @@ -4,6 +4,9 @@ # - Add the adapter to `all-adapters` in `tests/test-sources/plugins/neotest/default.nix` # - Add a more complete test case in `tests/test-sources/plugins/neotest/NAME.nix` { + bash = { + treesitter-parser = "bash"; + }; dart = { treesitter-parser = "dart"; }; @@ -16,15 +19,27 @@ elixir = { treesitter-parser = "elixir"; }; + foundry = { + treesitter-parser = "solidity"; + }; go = { treesitter-parser = "go"; }; + gradle = { + treesitter-parser = "kotlin,java"; + }; haskell = { treesitter-parser = "haskell"; }; + java = { + treesitter-parser = "java"; + }; jest = { treesitter-parser = "javascript"; }; + minitest = { + treesitter-parser = "ruby"; + }; pest = { treesitter-parser = "php"; }; @@ -52,4 +67,7 @@ vitest = { treesitter-parser = "javascript"; }; + zig = { + treesitter-parser = "zig"; + }; } diff --git a/plugins/neotest/adapters.nix b/plugins/neotest/adapters.nix index 14fb942e..99ee08ed 100644 --- a/plugins/neotest/adapters.nix +++ b/plugins/neotest/adapters.nix @@ -8,7 +8,7 @@ with lib; let supportedAdapters = import ./adapters-list.nix; - mkAdapter = name: props: { + mkAdapter = name: {treesitter-parser}: { options.plugins.neotest.adapters.${name} = { enable = mkEnableOption name; @@ -30,7 +30,7 @@ with lib; let (!config.plugins.treesitter.enable) '' Nixvim (plugins.neotest.adapters.${name}): This adapter requires `treesitter` to be enabled. - You might want to set `plugins.treesitter.enable = true` and ensure that the `${props.treesitter-parser}` is enabled. + You might want to set `plugins.treesitter.enable = true` and ensure that the `${props.treesitter-parser}` parser is enabled. ''; plugins.neotest.enabledAdapters = [ diff --git a/tests/test-sources/plugins/neotest/default.nix b/tests/test-sources/plugins/neotest/default.nix index 4d4c108b..78f18c41 100644 --- a/tests/test-sources/plugins/neotest/default.nix +++ b/tests/test-sources/plugins/neotest/default.nix @@ -10,13 +10,18 @@ enable = true; adapters = { + bash.enable = true; dart.enable = true; deno.enable = true; dotnet.enable = true; elixir.enable = true; + foundry.enable = true; go.enable = true; + gradle.enable = true; haskell.enable = true; + java.enable = true; jest.enable = true; + minitest.enable = true; pest.enable = true; phpunit.enable = true; plenary.enable = true; @@ -26,6 +31,7 @@ scala.enable = true; testthat.enable = true; vitest.enable = true; + zig.enable = true; }; }; }; diff --git a/tests/test-sources/plugins/neotest/foundry.nix b/tests/test-sources/plugins/neotest/foundry.nix new file mode 100644 index 00000000..6fb16486 --- /dev/null +++ b/tests/test-sources/plugins/neotest/foundry.nix @@ -0,0 +1,38 @@ +{ + example = { + plugins = { + treesitter.enable = true; + neotest = { + enable = true; + + adapters.foundry = { + enable = true; + + settings = { + foundryCommand = "forge test"; + foundryConfig = null; + env = {}; + cwd.__raw = '' + function () + return lib.files.match_root_pattern("foundry.toml") + end + ''; + filterDir.__raw = '' + function(name) + return ( + name ~= "node_modules" + and name ~= "cache" + and name ~= "out" + and name ~= "artifacts" + and name ~= "docs" + and name ~= "doc" + -- and name ~= "lib" + ) + end + ''; + }; + }; + }; + }; + }; +} diff --git a/tests/test-sources/plugins/neotest/java.nix b/tests/test-sources/plugins/neotest/java.nix new file mode 100644 index 00000000..f279ceb0 --- /dev/null +++ b/tests/test-sources/plugins/neotest/java.nix @@ -0,0 +1,18 @@ +{ + example = { + plugins = { + treesitter.enable = true; + neotest = { + enable = true; + + adapters.java = { + enable = true; + + settings = { + ignore_wrapper = false; + }; + }; + }; + }; + }; +} diff --git a/tests/test-sources/plugins/neotest/minitest.nix b/tests/test-sources/plugins/neotest/minitest.nix new file mode 100644 index 00000000..8e90fd44 --- /dev/null +++ b/tests/test-sources/plugins/neotest/minitest.nix @@ -0,0 +1,27 @@ +{ + example = { + plugins = { + treesitter.enable = true; + neotest = { + enable = true; + + adapters.minitest = { + enable = true; + + settings = { + test_cmd.__raw = '' + function() + return vim.tbl_flatten({ + "bundle", + "exec", + "rails", + "test", + }) + end + ''; + }; + }; + }; + }; + }; +}