language/haskell: wrap HLS with itself to find itself

This commit is contained in:
Ching Pei Yang 2026-05-20 16:49:39 +02:00
commit 39ff04fffa
No known key found for this signature in database
GPG key ID: B3841364253DC4C8
2 changed files with 17 additions and 1 deletions

View file

@ -116,11 +116,22 @@ in {
cmd = mkOption {
type = nullOr (listOf str);
default = [
"${pkgs.haskellPackages.haskell-language-server}/bin/haskell-language-server-wrapper"
(getExe (pkgs.symlinkJoin {
name = "haskell-language-server-wrapper";
paths = [pkgs.haskellPackages.haskell-language-server];
meta.mainProgram = "haskell-language-server-wrapper";
buildInputs = [pkgs.makeBinaryWrapper];
# wrap HLS-wrapper so it can find the actual binary
postBuild = ''
wrapProgram $out/bin/haskell-language-server-wrapper \
--prefix PATH : ${haskellPackages.haskell-language-server}/bin
'';
}))
"--lsp"
];
description = "Command for haskell-language-server.";
};
on_attach = mkOption {
type = nullOr luaInline;
description = "Function to run when HLS is attached. When null, mappings from the mappings option are used.";

View file

@ -23,6 +23,11 @@ in {
paths = [pkgs.haskellPackages.haskell-language-server];
meta.mainProgram = "haskell-language-server-wrapper";
buildInputs = [pkgs.makeBinaryWrapper];
# wrap HLS-wrapper so it can find the actual binary
postBuild = ''
wrapProgram $out/bin/haskell-language-server-wrapper \
--prefix PATH : ${pkgs.haskellPackages.haskell-language-server}/bin
'';
}) "haskell-language-server-wrapper")
"--lsp"
];