All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
4.1.0 (2026-04-28)
- hspec: add support for
effectful-hspec(6c3576b)
4.0.0 (2026-04-25)
- drop Neovim 0.11 support
- drop Neovim 0.11 support (3605464)
3.0.1 (2025-12-03)
3.0.0 (2025-05-25)
- drop nvim 0.10 support
2.1.1 (2025-01-06)
- tasty: disable coloured output to fix error message parsing (053781c)
- tasty: update error message line parsing logic (43378c6)
- Add
tree-sitter-haskellto rockspec dependencies.
- Updated queries to work with tree-sitter-haskell v0.21.0 rewrite.
- If you are using nvim-treesitter to manage parser installations, run
:TSUpdateto ensure you have the latest tree-sitter-haskell version. - If you are using Nix with an older version of the parser, you can either package tree-sitter-haskell, or pin an older version of this plugin.
- If you are using nvim-treesitter to manage parser installations, run
- Typo in tasty module.
tree-sitter-haskellparser declared in rockspec dependencies. Supports automatic installation with rocks.nvim.
- LuaRocks releases.
- Health check: Fix broken tree-sitter parser check.
- Remove
plenary.nvimdependency. This does not bump any version requirements, and is not a breaking change.
- POTENTIALLY BREAKING: remove
nvim-treesitterdependency. It is advised to be on at least Neovim v0.9.0 to use this plugin without nvim-treesitter. The tree-sitter parser for Haskell still has to be installed.
- Some plugin startup time improvements.
- Don't pass
-poption totastyif no paths to filter on are detected. - Tree-sitter root node detection in test files for which namespaces
cannot be detected: Allow
testnodes to be root nodes, too. - Treat all files with
specortestin the path as test files.
- Add missing
tasty-goldengoldenVsStringquery.
- Do not use deprecated health check API in neovim > 0.9.
- Support for neotest's upcoming
nioasync library.
- Support for the
sydtesttest framework. - Move position queries to
queries/haskell/<framework>-positions.scmandqueries/haskell/<framework>-test. This allows the addition of extra queries to$XDG_CONFIG_HOME/nvim/after/queries/haskell/<framework>-positions.scm
- Hspec: support
context,xcontext,specifyandxspecify
- Support configuring which modules are used to identify test frameworks.
- Support for the
tastytest framework. - Tested with:
tasty-hspectasty-hunittasty-quickchecktasty-smallchecktasty-hedgehogtasty-leanchecktasty-expected-failuretasty-programtasty-wai
- Health checks (
:help checkhealth). - Hspec: Support for skipped tests (
xdescribexit,xprop).
- Configuration option
build_toolswhich allows selection of one's preferred build tool to run tests.
- Improved and simplified Hspec test/namespace position discovery.
- Improved parsing of Hspec test results.
- Do not send a notification with Hspec
--matchexpression.
- Run all top-level tests in tests of type
file(#50).
- Support for test files (See #45).
Running
neotes.run.run(vim.api.nvim_buf_get_name)will now run a single process for the top-level Hspec node. - Support for simple cabal projects. These are projects with a single package and no
cabal.projectfile.
- Trims string ends from failed test results
- Packer init in minimal config for reproducing issues locally.
- Virtual text not displayed if test name contains lua
matchspecial characters. - Detect files ending in "Tests.hs" as test files
- Stack support!
- Error message when running outside of test definitions.
- Virtual text not shown when cursor is on
itorproptest.
- Do not display full output as virtual text..
To display output, see
:h neotest.output.open(). - Run all tests if no package is found.
- Run tests without options if no (hspec) test options can be found.
- Parse hspec test results and display error messages as virtual text.
- Remove double-quotes from match argument, which caused hspec not to be able ot find any matches.
- Simplify generated cabal command to run
new-testinstead ofnew-run. Previously, the generated command would have looked like this:cabal new-run <test-suite-name> -- -m "/path/to/hspec/branch/"Now it looks like this:cabal new-test <(sub)package-name> --test-argument -m --test-argument "/path/to/hspec/branch/"The reason for this change is to make it Cabal's responsibility to ensure the correct tests are run if a package has more than one test suite. With the previous approach, it was possible to run the wrong test suite without any matches.