Skip to content

Commit fdba701

Browse files
committed
languages/haskell: hls-wrapper -> hls
hls-wrapper is a simple script to start the correct language server based on the currently oppened project. From nvf perspective, this makes it effectively useless. To allow haskell to work on nvf OOTB, we specify cmd with hls (not wrapper). NOTE: this pins the language server to specific GHC version. To circumvent this, users must override (lib.mkForce) vim.lsp.servers.haskell-tools.cmd with their own, or just specify it as [ "haskell-language-server-wrapper" "--lsp" ].
1 parent 1189e78 commit fdba701

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

modules/plugins/languages/haskell.nix

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,18 @@
1212
inherit (lib.nvim.types) mkGrammarOption;
1313
inherit (lib.nvim.dag) entryAfter;
1414
inherit (lib.nvim.lua) toLuaObject;
15+
inherit (lib.nvim.attrsets) mapListToAttrs;
1516
inherit (lib.meta) getExe';
1617
inherit (lib.generators) mkLuaInline;
1718
inherit (pkgs) haskellPackages;
1819

1920
cfg = config.vim.languages.haskell;
2021

21-
defaultServers = ["hls"];
22+
defaultServers = ["haskell-tools"];
2223
servers = {
23-
hls = {
24-
cmd = [(getExe' pkgs.haskellPackages.haskell-language-server "haskell-language-server-wrapper") "--lsp"];
24+
haskell-tools = {
25+
enable = true;
26+
cmd = [(getExe' pkgs.haskellPackages.haskell-language-server "haskell-language-server") "--lsp"];
2527
on_attach =
2628
mkLuaInline
2729
/*
@@ -79,6 +81,15 @@ in {
7981
};
8082
})
8183

84+
(mkIf cfg.lsp.enable {
85+
vim.lsp.servers =
86+
mapListToAttrs (n: {
87+
name = n;
88+
value = servers.${n};
89+
})
90+
cfg.lsp.servers;
91+
})
92+
8293
(mkIf (cfg.dap.enable || cfg.lsp.enable) {
8394
vim = {
8495
startPlugins = ["haskell-tools-nvim"];
@@ -94,7 +105,6 @@ in {
94105
enable = true,
95106
},
96107
},
97-
hls = ${toLuaObject servers.hls},
98108
''}
99109
${optionalString cfg.dap.enable ''
100110
dap = {

0 commit comments

Comments
 (0)