# Changelog All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [10.0.1](https://github.com/mrcjkb/haskell-tools.nvim/compare/v10.0.0...v10.0.1) (2026-06-29) ### Bug Fixes * **lsp:** prevent error when hovering on closed parens ([#646](https://github.com/mrcjkb/haskell-tools.nvim/issues/646)) ([6fda625](https://github.com/mrcjkb/haskell-tools.nvim/commit/6fda625527314c1421d04e08ad84b7d707a62115)) ## [10.0.0](https://github.com/mrcjkb/haskell-tools.nvim/compare/v9.0.2...v10.0.0) (2026-06-06) ### ⚠ BREAKING CHANGES * prioritise `hie.yaml` in package root search ([#622](https://github.com/mrcjkb/haskell-tools.nvim/issues/622)) ### Features * prioritise `hie.yaml` in package root search ([#622](https://github.com/mrcjkb/haskell-tools.nvim/issues/622)) ([35c5fec](https://github.com/mrcjkb/haskell-tools.nvim/commit/35c5fec23d775aacae3ae3c9153e318e84e0236f)) ## [9.0.2](https://github.com/mrcjkb/haskell-tools.nvim/compare/v9.0.1...v9.0.2) (2026-05-04) ### Bug Fixes * **health:** use `vim.system` for depencency version detection ([e86225d](https://github.com/mrcjkb/haskell-tools.nvim/commit/e86225d12ca379ff4d27dcbc5241cbd9c12b9f7c)) ## [9.0.1](https://github.com/mrcjkb/haskell-tools.nvim/compare/v9.0.0...v9.0.1) (2026-04-14) ### Bug Fixes * **lsp:** only enable code lenses for the current buffer ([#571](https://github.com/mrcjkb/haskell-tools.nvim/issues/571)) ([e31dd3c](https://github.com/mrcjkb/haskell-tools.nvim/commit/e31dd3c2512788ea887b780177ab53f4e3263096)) ## [9.0.0](https://github.com/mrcjkb/haskell-tools.nvim/compare/v8.1.1...v9.0.0) (2026-04-13) ### ⚠ BREAKING CHANGES * **lsp:** single client for haskell and cabal files ([#559](https://github.com/mrcjkb/haskell-tools.nvim/issues/559)) ### Features * **lsp:** single client for haskell and cabal files ([#559](https://github.com/mrcjkb/haskell-tools.nvim/issues/559)) ([220b4ac](https://github.com/mrcjkb/haskell-tools.nvim/commit/220b4ac60751637211847a0a62c63992b7365942)) * **lsp:** suppress `MethodNotFound` errors due to lack of support for cabal files ([#568](https://github.com/mrcjkb/haskell-tools.nvim/issues/568)) ([d5fd459](https://github.com/mrcjkb/haskell-tools.nvim/commit/d5fd45950d3801526f2cdb2e902c46601206c134)) ## [8.1.1](https://github.com/mrcjkb/haskell-tools.nvim/compare/v8.1.0...v8.1.1) (2026-04-06) ### Bug Fixes * notify, don't error, when trying to set an invalid log level ([b3b6ebd](https://github.com/mrcjkb/haskell-tools.nvim/commit/b3b6ebd39a7aa60cafbeedfdcf99626982e4b55b)) ## [8.1.0](https://github.com/mrcjkb/haskell-tools.nvim/compare/v8.0.0...v8.1.0) (2026-04-03) ### Features * add `:Haskell hls [start|stop|restart]` commands ([85509e7](https://github.com/mrcjkb/haskell-tools.nvim/commit/85509e799f1cbffc372c94c10faea1dd55d5e380)) ## [8.0.0](https://github.com/mrcjkb/haskell-tools.nvim/compare/v7.0.3...v8.0.0) (2026-04-03) ### ⚠ BREAKING CHANGES * **lsp:** move `:Hls evalAll` subcommand to `:Haskell hls evalAll` * **lsp:** remove `:Hls [start|restart|stop]` commands. You can use the built-in `:lsp` command instead. * drop Neovim 0.11 support ### Features * drop Neovim 0.11 support ([6c9ae50](https://github.com/mrcjkb/haskell-tools.nvim/commit/6c9ae50485ae0b7554783d4efd4d419e6bc2affd)) * **lsp:** move `:Hls evalAll` subcommand to `:Haskell hls evalAll` ([04b370e](https://github.com/mrcjkb/haskell-tools.nvim/commit/04b370eea89822277dd591e5aafd5e330dca0693)) * **lsp:** remove `:Hls [start|restart|stop]` commands ([b458648](https://github.com/mrcjkb/haskell-tools.nvim/commit/b45864817b74fa434ab9da986c9cf9d0d852adcc)) ## [7.0.3](https://github.com/mrcjkb/haskell-tools.nvim/compare/v7.0.2...v7.0.3) (2026-02-25) ### Bug Fixes * **lsp:** Merge `vim.lsp.config` settings with `server.default_settings` ([0da19cb](https://github.com/mrcjkb/haskell-tools.nvim/commit/0da19cbf9fa41a523b61983adb57c69ae575c971)) ## [7.0.2](https://github.com/mrcjkb/haskell-tools.nvim/compare/v7.0.1...v7.0.2) (2026-02-21) ### Bug Fixes * **lsp/hover:** broken handlers for go-to-<location> actions ([c7a83f7](https://github.com/mrcjkb/haskell-tools.nvim/commit/c7a83f73b0f6fd74ef3994e2fa19de98fcf3fa1c)) * **lsp:** broken handler for hoogle go-to-definition fallback ([30ab739](https://github.com/mrcjkb/haskell-tools.nvim/commit/30ab739805172ef381e34303666267aa5816687c)) ## [7.0.1](https://github.com/mrcjkb/haskell-tools.nvim/compare/v7.0.0...v7.0.1) (2026-02-08) ### Bug Fixes * **lsp:** support nvim-nightly (0.12) codelens API ([#535](https://github.com/mrcjkb/haskell-tools.nvim/issues/535)) ([9462bba](https://github.com/mrcjkb/haskell-tools.nvim/commit/9462bbabbfcd66069a4f992bfa837f523800820e)) ## [7.0.0](https://github.com/mrcjkb/haskell-tools.nvim/compare/v6.2.3...v7.0.0) (2026-01-24) ### ⚠ BREAKING CHANGES * remove no-op config option `hover.enable` * remove no-op config option `hoogle_signature_fallback` ### Features * `Haskell definition` command with hoogle fallback ([cf167c1](https://github.com/mrcjkb/haskell-tools.nvim/commit/cf167c19b79ed6b39596fca19a583ff385521f46)) * `Haskell hover` command for hover actions ([6ffd2ed](https://github.com/mrcjkb/haskell-tools.nvim/commit/6ffd2ed2c274259b9db05d7e99d1bd301af000d2)) * remove no-op config option `hoogle_signature_fallback` ([ab5f2b9](https://github.com/mrcjkb/haskell-tools.nvim/commit/ab5f2b92667582eab624b581dd490b0238f4cc4f)) * remove no-op config option `hover.enable` ([a4dff38](https://github.com/mrcjkb/haskell-tools.nvim/commit/a4dff3815ad01a0294afa0e2f29eb1fb3b3415e8)) ## [6.2.3](https://github.com/mrcjkb/haskell-tools.nvim/compare/v6.2.2...v6.2.3) (2026-01-24) ### Bug Fixes * remove debug print ([483d825](https://github.com/mrcjkb/haskell-tools.nvim/commit/483d825e54b91e2db2b5c425975ed3d0ca34ad15)) ## [6.2.2](https://github.com/mrcjkb/haskell-tools.nvim/compare/v6.2.1...v6.2.2) (2026-01-24) ### Bug Fixes * **lsp:** client given wrong name [regression] ([#527](https://github.com/mrcjkb/haskell-tools.nvim/issues/527)) ([0f66b74](https://github.com/mrcjkb/haskell-tools.nvim/commit/0f66b74e207b3cb1ade73e127df124ed48499207)) ## [6.2.1](https://github.com/mrcjkb/haskell-tools.nvim/compare/v6.2.0...v6.2.1) (2026-01-07) ### Bug Fixes * **lsp:** resolve `vim.lsp.config[*]` ([#522](https://github.com/mrcjkb/haskell-tools.nvim/issues/522)) ([1516ab3](https://github.com/mrcjkb/haskell-tools.nvim/commit/1516ab3a8564c70b8a9a9c2c92a62dec3f6a8811)) * **lsp:** update deprecated api use ([eda4431](https://github.com/mrcjkb/haskell-tools.nvim/commit/eda4431fa27632aa261eba4f66114000eb6200af)) ## [6.2.0](https://github.com/mrcjkb/haskell-tools.nvim/compare/v6.1.1...v6.2.0) (2025-08-18) ### Features * **lsp/hover:** remove LuaJIT requirement ([c4e6df5](https://github.com/mrcjkb/haskell-tools.nvim/commit/c4e6df5ec7654f91b8d9d4d2a532ab2df5ae0766)) ### Bug Fixes * **log:** avoid deprecation warning on nightly ([6b100ca](https://github.com/mrcjkb/haskell-tools.nvim/commit/6b100ca069a554ab49fed541e052aae00b44e8ea)) ## [6.1.1](https://github.com/mrcjkb/haskell-tools.nvim/compare/v6.1.0...v6.1.1) (2025-07-12) ### Bug Fixes * **telescope:** `package_hsfiles` extension ([#489](https://github.com/mrcjkb/haskell-tools.nvim/issues/489)) ([34cfd62](https://github.com/mrcjkb/haskell-tools.nvim/commit/34cfd62465b0645de3fdcdeefcc5eaa2712fcc54)) ## [6.1.0](https://github.com/mrcjkb/haskell-tools.nvim/compare/v6.0.0...v6.1.0) (2025-05-25) ### Features * compatibility with nvim nightly 0.12.0-dev-434 ([489b208](https://github.com/mrcjkb/haskell-tools.nvim/commit/489b208a308937b471aa90e4696da8925875792a)) ## [6.0.0](https://github.com/mrcjkb/haskell-tools.nvim/compare/v5.0.0...v6.0.0) (2025-04-30) ### ⚠ BREAKING CHANGES * use `vim.lsp.config('haskell-tools')` to fix conflict with nvim-lspconfig ([#466](https://github.com/mrcjkb/haskell-tools.nvim/issues/466)) ### Features * use `vim.lsp.config('haskell-tools')` to fix conflict with nvim-lspconfig ([#466](https://github.com/mrcjkb/haskell-tools.nvim/issues/466)) ([de64738](https://github.com/mrcjkb/haskell-tools.nvim/commit/de64738d5ac7ad8fb6a3fbbfa69e81d40650ca12)) ## [5.0.0](https://github.com/mrcjkb/haskell-tools.nvim/compare/v4.4.3...v5.0.0) (2025-04-06) ### ⚠ BREAKING CHANGES * drop nvim 0.10 support * **lsp:** don't auto-register client capabilities ### Features * drop nvim 0.10 support ([a566c3e](https://github.com/mrcjkb/haskell-tools.nvim/commit/a566c3ecfb884845375277243b9f9e3d552706d5)) * **lsp:** don't auto-register client capabilities ([9ac2bd1](https://github.com/mrcjkb/haskell-tools.nvim/commit/9ac2bd1983139b91626b972e8f53b8d3e031dae7)) * support `vim.lsp.config` ([53d9888](https://github.com/mrcjkb/haskell-tools.nvim/commit/53d9888aebe27cd50c0404d88a7aa51d7341784a)) ## [4.4.3](https://github.com/mrcjkb/haskell-tools.nvim/compare/v4.4.2...v4.4.3) (2025-03-30) ### Bug Fixes * typos in lua/vim docs ([#453](https://github.com/mrcjkb/haskell-tools.nvim/issues/453)) ([b6587ae](https://github.com/mrcjkb/haskell-tools.nvim/commit/b6587ae3dcb53b44c56bc7e8df4d1caaa3607c6e)) ## [4.4.2](https://github.com/mrcjkb/haskell-tools.nvim/compare/v4.4.1...v4.4.2) (2025-02-10) ### Bug Fixes * **repl/builtin:** regression introduced in v4.4.1 ([#438](https://github.com/mrcjkb/haskell-tools.nvim/issues/438)) ([dbc154f](https://github.com/mrcjkb/haskell-tools.nvim/commit/dbc154fd7b64208b4526ff905240c530351426f0)), closes [#437](https://github.com/mrcjkb/haskell-tools.nvim/issues/437) ## [4.4.1](https://github.com/mrcjkb/haskell-tools.nvim/compare/v4.4.0...v4.4.1) (2025-02-09) ### Bug Fixes * **repl:** use termopen if available ([#435](https://github.com/mrcjkb/haskell-tools.nvim/issues/435)) ([bf691e3](https://github.com/mrcjkb/haskell-tools.nvim/commit/bf691e341363dee2a5c17b488d4df8dcec67c4ca)), closes [#434](https://github.com/mrcjkb/haskell-tools.nvim/issues/434) ## [4.4.0](https://github.com/mrcjkb/haskell-tools.nvim/compare/v4.3.2...v4.4.0) (2025-01-27) ### Features * notify if using an unsupported Nvim version ([182e4b7](https://github.com/mrcjkb/haskell-tools.nvim/commit/182e4b74278a2f02daa097e54387849bc4aa8933)) ## [4.3.2](https://github.com/mrcjkb/haskell-tools.nvim/compare/v4.3.1...v4.3.2) (2024-11-29) ### Bug Fixes * **lsp/nightly:** set offset encoding in client requests ([361d36e](https://github.com/mrcjkb/haskell-tools.nvim/commit/361d36ec6a11135dc5f99da8b4fb56091bf61b8b)) * **lsp:** schedule notifications ([3c90274](https://github.com/mrcjkb/haskell-tools.nvim/commit/3c90274818a980ddfdd72ac9000daf475a08cd0b)) ## [4.3.1](https://github.com/mrcjkb/haskell-tools.nvim/compare/v4.3.0...v4.3.1) (2024-10-22) ### Bug Fixes * **config:** `hls.cmd` validation fails on list with one element ([#412](https://github.com/mrcjkb/haskell-tools.nvim/issues/412)) ([37a2881](https://github.com/mrcjkb/haskell-tools.nvim/commit/37a2881dfe828be5d879e2312da0018348162ae1)) ## [4.3.0](https://github.com/mrcjkb/haskell-tools.nvim/compare/v4.2.0...v4.3.0) (2024-10-20) ### Features * add `hoogle.web-search.base_url` option ([#409](https://github.com/mrcjkb/haskell-tools.nvim/issues/409)) ([a870f75](https://github.com/mrcjkb/haskell-tools.nvim/commit/a870f75a5de0d63d8cd6e11ea277be4c118ddb80)) ## [4.2.0](https://github.com/mrcjkb/haskell-tools.nvim/compare/v4.1.0...v4.2.0) (2024-10-04) ### Features * add `open_url` config option ([#403](https://github.com/mrcjkb/haskell-tools.nvim/issues/403)) ([8cfe955](https://github.com/mrcjkb/haskell-tools.nvim/commit/8cfe95549b5cba27c03f13b649a578f6b98e27e0)) ## [4.1.0](https://github.com/mrcjkb/haskell-tools.nvim/compare/4.0.1...v4.1.0) (2024-09-20) ### Features * **lsp:** `` mappings for hover actions ([#398](https://github.com/mrcjkb/haskell-tools.nvim/issues/398)) ([f32ba45](https://github.com/mrcjkb/haskell-tools.nvim/commit/f32ba4538f3554e1b6636e296ad15833727ad52a)), closes [#395](https://github.com/mrcjkb/haskell-tools.nvim/issues/395) ### Bug Fixes * **lsp:** disable hover actions if luajit is not available ([24865bf](https://github.com/mrcjkb/haskell-tools.nvim/commit/24865bf7ec58308e164bd92efd810ae68c9451f2)) * nil error when trying to invoke some subcommands ([e7a5bdb](https://github.com/mrcjkb/haskell-tools.nvim/commit/e7a5bdb55eed8a37afeb2171c9feb5990749168e)) ## [4.0.1] - 2024-08-20 ### Fixed - repl: Accidental use of Neovim 0.11 (nightly) API. ## [4.0.0] - 2024-07-26 ### BREAKING CHANGES - Require Neovim `>= 0.10` - Rename types in LuaCATS annotations and vimdoc. - Merge `HlsStart`, `HlsStop`, `HlsRestart` and `HlsEvalAll` into `Hls` `start`, `stop`, `restart` and `evalAll` subcommands. - Merge `HsRepl*` commands into `Haskell repl *` subcommands. - Merge `HsProjectFile` `HsPackageYaml` and `HsPackageCabal` commands into `Haskell {projectFile|packageYaml|packageCabal}` subcommands. - Merge logging commands into respective `Haskell log` subcommands. ### Added - Repl: subcommands for remaining Lua functions: `paste_type`, `cword_type`, `paste_info`, `cword_info`. ## [3.1.10] - 2024-05-30 ### Fixed - LSP: Force-extend Neovim's default client capabilities with detected plugin capabilities, to ensure plugin capability extensions take precedence in case of conflict. ## [3.1.9] - 2024-05-04 ### Changed - Add compatibility layers for Neovim API that has been deprecated in Neovim nightly. ## [3.1.8] - 2024-02-23 ### Reverted - Don't run `ftplugin` more than once on the same buffer. This prevented the LSP client from reattaching when running `:e`. ## [3.1.7] - 2024-02-20 ### Fixed - Missing vimdoc in generated helpfile. ## [3.1.6] - 2024-01-27 ### Performance - Don't run `ftplugin` more than once on the same buffer. ## [3.1.5] - 2024-01-25 ### Changed - Initialization: Lazy-require `haskell-tools` fields. This prevents configs from being initialized early if calling `require('haskell-tools')` before setting `vim.g.haskell_tools`. ## [3.1.4] - 2024-01-20 ### Fixed - Hoogle: Don't escape URLs when opening in browser [[#336](https://github.com/mrcjkb/haskell-tools.nvim/issues/336)]. ## [3.1.3] - 2024-01-11 ### Fixed - LSP: Add safety to `:HlsRestart` command, to prevent it from retrying indefinitely. ## [3.1.2] - 2024-01-10 ### Fixed - Hoogle (web): Error handling for invalid `curl` output [[#322](https://github.com/mrcjkb/haskell-tools.nvim/issues/322)]. ## [3.1.1] - 2023-12-22 ### Fixed - Health: Only report error if `lspconfig.hls` has been set up, not other configurations. ## [3.1.0] - 2023-12-18 ### Added - Health: Warn if there are unrecognized configs in `vim.g.haskell_tools`. ### Fixed - Health: Check if `vim.g.haskell_tools` is set, but hasn't been sourced before initialization. - Hoogle (web): Make `curl` silent. ## [3.0.2] - 2023-11-25 ### Fixed - Remove default setting for `cabalFormattingProvider`, falling back to haskell-language-server's default. ## [3.0.1] - 2023-11-23 ### Fixed - Don't attempt to generate project tags if no project root is found. ## [3.0.0] - 2023-10-28 ### Changed - Remove `plenary.nvim` dependency. POTENTIALLY BREAKING: This should not break anything, but removing a dependency is worth a major version bump, just in case. NOTE: `plenary.nvim` is still a dependency of `telescope.nvim`. - POTENTIALLY BREAKING: Bump minimum Neovim version requirement to `0.9`. This plugin may still work with Neovim `0.8`, but its compatibility is not tested. - New, fabulous logo. ![](https://raw.githubusercontent.com/mrcjkb/haskell-tools.nvim/e6e7afa8f9cacd4a65b7707e38feedaf64b8e21a/nvim-haskell.svg) ### Added - Add filetype information to the LSP client [#275](https://github.com/mrcjkb/haskell-tools.nvim/issues/275). ## [2.4.0] - 2023-10-13 ### Added - `vim.g.haskell_tools` can now also be a function that returns a configuration table. - `HlsLog` and `HtLog`, `HtSetLogLevel` commands. ### Fixed - Configure `haskell-language-server` to log to a temporary file by default, to prevent huge log files [#264](https://github.com/mrcjkb/haskell-tools.nvim/issues/264). ### Changed - Don't send an error notification if the name of the buffer cannot be determined when starting the LSP client. - `checkhealth`: Report on whether or not `vim.g.haskell_tools` is set. ## [2.3.0] - 2023-09-20 ### Added - Health: Check for conflicting `lspconfig.hls` configuration. - New commands: `HlsEvalAll`, `HtReplToggle`, `HtReplQuit`, `HtReplLoad`, `HtReplReload` ### Fixed - Builtin repl: Broken toggle ## [2.2.0] - 2023-09-12 ### Added - Automatically add `foldingRange` LSP client capabilities if [`nvim-ufo`](https://github.com/kevinhwang91/nvim-ufo) is installed. ## [2.1.0] - 2023-09-10 ### Added - Automatically discover debug adapter launch configurations if `nvim-dap` and `haskell-debug-adapter` are detected. This can be disabled by setting the `vim.g.haskell_tools.dap.auto_discover` option to `false`. ### Fixed - Hoogle replace (``) no longer switches to insert mode. ## [2.0.2] - 2023-09-02 ### Fixed - Hover: Decode url-encoded (type-)definition paths in hover actions ([#238](https://github.com/mrcjkb/haskell-tools.nvim/issues/238)). ## [2.0.1] - 2023-09-01 ### Fixed - Re-add public `haskell-tools.log` API. ## [2.0.0] - 2023-08-27 ### Changed - New, more stable architecture. - BREAKING: Remove `setup` API. - BREAKING: Remove `start_or_attach` API. `vim.g.haskell_tools` can be used for configuration instead. - BREAKING: `haskell-tools` now automatically initialises and attaches when opening a Haskell or Cabal file. You can fine-tune this behaviour in the config. - BREAKING: Removed `haskell-tools.dap.nvim_dap` (copy of the `dap` module). - BREAKING configuration changes: - `hover.disable` has been changed to `hover.enable` for consistency. - `hls_log` (undocumented) has been moved to `hls.logfile`. - Repl: Add `--ghc-option -Wwarn` to `cabal repl` command. ### Added - Only attach cabal LSP clients if using `haskell-language-server > 1.9.0.0`. - By default, fall back to `haskell-language-server` if `haskell-language-server-wrapper` is not found [#233](https://github.com/mrcjkb/haskell-tools.nvim/issues/233). ### Fixed - LSP client: Don't fail if `hls.on_attach` fails. ## [1.11.3] - 2023-08-06 ### Fixed - Fix bug that broke codelens auto-refresh and lsp stop/restart [#229](https://github.com/mrcjkb/haskell-tools.nvim/issues/229). ## [1.11.2] - 2023-08-03 ### Fixed - Cabal: Do not advertise `server_capabilities` for `foldingRangeProvider` and `selectionRangeProvider` ([#223](https://github.com/mrcjkb/haskell-tools.nvim/issues/223)). Prevents error messages caused by plugins that provide LSP client capabilities that are not built-in to Neovim. ## [1.11.1] - 2023-07-17 ### Fixed - Hover: Fix error message when using go-to-definition/typeDefinition hover actions with neovim-nightly (10.x). ## [1.11.0] - 2023-07-05 ### Changed - Improvements to type signature detection from `textDocument/hover` docs. ### Added - Hover: Hoogle search entries for all detected type signatures. ### Fixed - repl: If both stack and cabal files are present, prefer stack if it is installed. This is configurable with the option `tools.repl.prefer`. ## [1.10.2] - 2023-05-22 ### Fixed - Do not use deprecated health check API in neovim > 0.9. - Health checks: Parsing of dependency versions without a newline causes error message. ## [1.10.1] - 2023-05-4 ### Fixed - Typo in `dap` module potentially leading to errors on warning logs. ## [1.10.0] - 2023-04-17 ### Added - Support for [`nvim-dap`](https://github.com/mfussenegger/nvim-dap) with [`haskell-debug-adapter`](https://hackage.haskell.org/package/haskell-debug-adapter), an experimental debug adapter for Haskell. ## [1.9.7] - 2023-04-15 ### Fixed - Remove some prints. ## [1.9.6] - 2023-04-09 ### Fixed - Loading files with `'builtin'` repl handler (#177). ## [1.9.5] - 2023-04-06 ### Fixed - Prevent infinite recursion on strange operating systems in path iteration (#171). ## [1.9.4] - 2023-04-02 ### Fixed - Repl: Detection of single-package cabal projects. - Hoogle (web): URL escaping. ### Changed - Remove rockspec (not needed, due to luarocks-tag-release-workflow). - `HsProjectFile`: Try `stack.yml` first, then fall back to `cabal.project` and then to `*.cabal`. ## [1.9.3] - 2023-03-08 ### Fixed - Silent failure and unexpected error message if `haskell-language-server` executable is not found (#154). ## [1.9.2] - 2023-03-06 ### Fixed - Initialisation of client capabilities when `nvim-cmp` is not installed. ## [1.9.1] - 2023-02-20 ### Fixed - Typo in the logfile name. ## [1.9.0] - 2023-02-17 ### Added - LSP: Evaluate all code snippets in comments at once. - Support setup in ftplugin/haskell.lua. ### Fixed - Check if attached LSP client supports codeLens before refreshing. - Telescope extension can now be registered before haskell-tools has been setup. ## [1.8.0] - 2023-02-03 ### Changed - Set up LSP client without `nvim-lspconfig` (removes the dependency). - Hover actions: Shorten locations relative to file, package or project. - Only show definition/typeDefinition hover actions if they are in different locations. ### Added - Rockspec for automatic dependency management by LuaRocks-compatible plugin managers. - LuaRocks tag release workflow. - `HlsStart`, `HlsStop` and `HlsRestart` commands. - Dynamically load `haskell-language-server` settings JSON from project root, if available. - Health checks, runnable with `:checkhealth haskell-tools`. - Validate configs during setup. - Hover action for `textDocument/typeDefinition`. ## [1.7.0] - 2023-01-27 ### Fixed - Fall back to hoogle browser search if telescope is not set up. ### Changed - Do not set a default layout for telescope Hoogle search. ## [1.6.0] - 2023-01-21 ### Added - Ability to temporarily set the log level via `ht.log.set_level(level)`. - `tools.repl.auto_focus` option. - Vimdocs ### Fixed - repl.toggleterm: Do not close on failure. - repl: Quote file names. ## [1.5.1] - 2023-01-08 ### Fixed - Set default log level to `vim.log.levels.WARN`. ## [1.5.0] - 2023-01-08 ### Added - Support for `hls-cabal-plugin` and `hls-cabal-fmt` plugins. - Add logging ### Fixed - Packer init in minimal config for reproducing issues locally. ## [1.4.4] - 2022-12-20 ### Fixed - Pass the custom options to hoogle telescope, so that users' custom telescope themes, etc. can be supported. ## [1.4.3] - 2022-12-06 ### Fixed - Error message shown if hoogle is installed, but telescope is missing ## [1.4.2] - 2022-11-19 ### Fixed - Bug causing hls to always use default settings - Prevent concatenatenation with nil on tags generation if package root can't be found ## [1.4.1] - 2022-11-19 ### Fixed - Project tags not being generated on session start ## [1.4.0] - 2022-11-18 ### Added - Automatically generate project & package tags if [`fast-tags`](https://github.com/elaforge/fast-tags) is installed. - Configuration for falling back to hoogle search if `vim.lsp.definition` fails. - Nix flake setup. ### Fixed - Hover actions improvements: - Always show 'Go to definition' if location is found. - Offer Hoogle search for package <> name if location is not found. - Hoogle search: Replace multiple whitespace with single space. - CodeLens: Only auto-refresh on buffer the LSP client has attached to. ## [1.3.0] - 2022-11-14 ### Added - Hover actions - Command for loading files into the repl. - Ability to paste multiple valid Haskell lines into the repl. - `repl.paste_info` and `repl.cword_info` functions. - Telescope live_grep and find_files commands for current package - Register Telescope extension ### Fixed - Fix broken `` keymap to open Hoogle entry in the browser ## [1.2.0] - 2022-11-09 ### Added - GHCi repl integration: Automagically detect the command to start GHCi and load the current buffer. - Interact with the GHCi repl from any buffer using lua functions. - `:HsProjectFile`, `:HsPackageYaml` and `:HsPackageCabal` commands to open project/package files for the current buffer. ### Changed - Do not close Hoogle Telescope prompt on `` (open hackage docs in browser). ### Fixed - Auto-refresh code lenses only for Haskell files ## [1.1.0] - 2022-10-29 ### Added - Keymap to replace word under cursor when hoogling type signature ### Fixed - Fix broken telescope hoogle_attach_mappings call, causing error message on entry selection ## [1.0.0] - 2022-10-25 ### Added - Hoogle search (BREAKING CHANGE: Depends on [`plenary.nvim`](https://github.com/nvim-lua/plenary.nvim)) - Hoogle search for signature under cursor (telescope-local, telescope-web or browser) - Automatic registration of selection range capabilities if [nvim-lsp-selection-range](https://github.com/camilledejoye/nvim-lsp-selection-range) is loaded. ## [0.2.0] - 2022-10-18 ### Added - Basic automatic codeLens refresh (can be disabled by setting `tools.codeLens.autoRefresh = false`). ### Fixed - Clean exit of language server on quit. ## [0.1.0] - 2022-10-15 ### Added - Basic haskell-language-server client support on par with `nvim-lspconfig.hls`. - Clean shutdown on exit to prevent file corruption ([see ghc #14533](https://gitlab.haskell.org/ghc/ghc/-/issues/14533)).