-
Notifications
You must be signed in to change notification settings - Fork 64
Description
I have errors like
Severity: DsError
Message: haskell-language-server: could not execute: hspec-discover
when run haskell-language-server. I guess the reason is because hspec-discover in package.yaml:tests:build-tools:, and so installed by stack (not by nix-shell as rest, not-build-specific, tools).
But I have no such problems when run it like env PATH=$PATH:`bash -c 'source <(stack config env); echo $PATH'` haskell-language-server.
I can't just run stack exec haskell-language-server to just simply have all the stack's environments available, because stack using nix --pure for more robust and reproducible builds, and so that cause nix shells conflicts (not sure -- is it because of shells recursivity, or stack can't decide, which nix shell is build one, according to STACK_IN_NIX_SHELL environment variable, I guess).
So the question is: how construction like env PATH=$PATH:`bash -c 'source <(stack config env); echo $PATH'` haskell-language-server could be passed to lsp-haskell-server-wrapper-function properly?
Possible workaround would be: just add each tool from stack's package.yaml:tests:build-tools: (like hspec-discover here) into top-level shell.nix, but that would be fragile and require continuous project build tools consistency manual maintaining.