I installed Haskell via
I have installed the HLS via ghcup
ghcup set 9.6.1
I have the VS Code extension: https://marketplace.visualstudio.com/items?itemName=haskell.haskell
When I open the project in VS Code I get the following error:
Failed to find the GHC version of this Stack project. Error when calling stack setup --silent
So far I have been using Cabal in the terminal outside of VS Code e.g.
cabal repl etc
I notice that VS Code is trying to use
stack... if I try and use Stack in the terminal I get errors like:
$ stack build
No setup information found for ghc-8.6.5 on your platform.
This probably means a GHC bindist has not yet been added for OS key 'macosx-aarch64'.
Supported versions: ghc-8.10.5, ghc-8.10.6, ghc-8.10.7, ghc-9.0.2, ghc-9.2.1, ghc-9.2.2, ghc-9.2.3, ghc-9.2.4, ghc-9.2.5, ghc-9.2.6, ghc-9.2.7, ghc-9.4.1, ghc-9.4.2, ghc-9.4.3, ghc-9.4.4, ghc-9.6.1
I don't know why Stack wants to use GHC 8.6.5, or if this is related to the problem that VS Code extension is having
No idea really what to do, the instructions are ...minimal https://www.haskell.org/ghcup/install/#vscode-integration
Issue discussed in more detail here: https://github.com/haskell/vscode-haskell/issues/841
Essentially I had a collection of problems, some because the project I was trying to open was old, and some because I am still finding my way around the ghcup toolchain:
ghcup and thus needed some config tweaks
.cabal and a
resolver: lts-14.4... this represents a "stackage snapshot" version. I'm not entirely sure what that is, I think it is a concept that doesn't exist in package managers I have used in other languages. I think it is a frozen set of package versions, in this case so old they are only compatible with the old GHC 8.6.5 version, thus was unusable with the GHC 9.x I was trying to use currently, leading to errors - VS Code extension was trying to use this to install dependencies
ghcup but apparently it's not possible to install a Haskell Language Server for that version yet
So a bunch of fixes were needed:
stack.yaml ... it had an obsolete
resolver and also defined:
which seemed to prevent VS Code from installing any dependencies.
stack.yaml didn't seem to be doing anything useful.
build-depends: base >=4.0 && <4.13 so that a version compatible with GHC 9.x could be resolved)
ghcup set ghc to end up with older GHC 9.2.5, this seems to have a compatible HLS version installed.
$ ghcup set 9.6.1
[ Warn ] This is an old-style command for setting GHC. Use 'ghcup set ghc' instead.
I do still have
"haskell.manageHLS": "GHCup" in my VS Code
settings.json, not sure if this is needed or not.