A Neovim plugin that enhances Haskell development with LSP integration, Hoogle search, GHCi REPL, and advanced tooling.
haskell-tools.nvim is a Neovim plugin that enhances the Haskell development experience by integrating haskell-language-server and other Haskell-specific tools. It provides features like automatic LSP setup, Hoogle search, GHCi REPLs, code lens management, and debugging support, all with minimal configuration.
Haskell developers using Neovim who want advanced tooling beyond basic LSP support, including those working on larger projects or seeking integrated REPL, Hoogle, and debugging capabilities.
It offers a comprehensive, "just works" solution with lazy initialization, no dependency on lspconfig, and deep integration with the Haskell ecosystem, making it a powerful alternative to manual tool setup.
🦥 Supercharge your Haskell experience in neovim!
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Automatically configures haskell-language-server with no manual setup required, emphasizing a 'just works' philosophy as noted in the README.
Enables hole-driven development by searching type signatures and filling code holes directly from the editor, with telescope integration for seamless use.
Detects and launches project or buffer-specific GHCi REPLs using cabal, stack, or ghci, as demonstrated in the features section with automatic tool detection.
Auto-refreshes code lenses and provides a function to evaluate all snippets at once, enhancing the LSP experience for Haskell-specific workflows.
Designed with lazy initialization to minimize startup time and cleanly integrate into Neovim, avoiding dependencies on lspconfig.
Relies on multiple external tools like haskell-language-server, hoogle, and fast-tags for full functionality, adding setup complexity and potential installation hurdles.
Primarily tested on Linux, with basic features on macOS and Windows; external tool integrations may break on non-Unix systems, as acknowledged in the troubleshooting notes.
Customizing per-project settings or disabling features requires detailed Lua configuration, which can be daunting compared to simpler plugins.
The README recommends pinning to tagged releases or using version ranges to avoid surprises, indicating that updates may introduce instability or require manual adjustments.