diff --git a/docs/release-notes/rl-0.8.md b/docs/release-notes/rl-0.8.md index a779037e..c1d0d508 100644 --- a/docs/release-notes/rl-0.8.md +++ b/docs/release-notes/rl-0.8.md @@ -584,3 +584,10 @@ [mellow.nvim]: https://github.com/mellow-theme/mellow.nvim - Add [mellow.nvim] plugin for vim and lualine theme support + +[Siggsy](https://github.com/siggsy): + +- Fix `vim.languages.haskell.lsp` using `lspconfig` options instead of + `haskell-tools.nvim` options. +- Fix default language server `cmd` by replacing `haskell-language-server-wrapper` with `haskell-language-server` + diff --git a/modules/plugins/languages/haskell.nix b/modules/plugins/languages/haskell.nix index ac18fe55..0d73a987 100644 --- a/modules/plugins/languages/haskell.nix +++ b/modules/plugins/languages/haskell.nix @@ -12,18 +12,18 @@ inherit (lib.nvim.types) mkGrammarOption; inherit (lib.nvim.dag) entryAfter; inherit (lib.nvim.lua) toLuaObject; + inherit (lib.nvim.attrsets) mapListToAttrs; inherit (lib.meta) getExe'; inherit (lib.generators) mkLuaInline; inherit (pkgs) haskellPackages; cfg = config.vim.languages.haskell; - defaultServers = ["hls"]; + defaultServers = ["haskell-tools"]; servers = { - hls = { - enable = false; - cmd = [(getExe' pkgs.haskellPackages.haskell-language-server "haskell-language-server-wrapper") "--lsp"]; - filetypes = ["haskell" "lhaskell"]; + haskell-tools = { + enable = true; + cmd = [(getExe' pkgs.haskellPackages.haskell-language-server "haskell-language-server") "--lsp"]; on_attach = mkLuaInline /* @@ -43,23 +43,6 @@ vim.keymap.set('n', 'rq', ht.repl.quit, opts) end ''; - root_dir = - mkLuaInline - /* - lua - */ - '' - function(bufnr, on_dir) - local fname = vim.api.nvim_buf_get_name(bufnr) - on_dir(util.root_pattern('hie.yaml', 'stack.yaml', 'cabal.project', '*.cabal', 'package.yaml')(fname)) - end - ''; - settings = { - haskell = { - formattingProvider = "ormolu"; - cabalFormattingProvider = "cabalfmt"; - }; - }; }; }; in { @@ -98,6 +81,15 @@ in { }; }) + (mkIf cfg.lsp.enable { + vim.lsp.servers = + mapListToAttrs (n: { + name = n; + value = servers.${n}; + }) + cfg.lsp.servers; + }) + (mkIf (cfg.dap.enable || cfg.lsp.enable) { vim = { startPlugins = ["haskell-tools-nvim"]; @@ -113,7 +105,6 @@ in { enable = true, }, }, - hls = ${toLuaObject servers.hls}, ''} ${optionalString cfg.dap.enable '' dap = {