haskell-jp / beginners #15 at 2021-04-05 17:50:52 +0900

VSCode の質問です。
IDEのエラーか何かで
ghcide compiled against GHC 8.8.2 but currently using 8.6.5 This is unsupported, ghcide must be compiled with the same GHC ...
と出てきてしまい、何を打っても一番最初の行に赤線が引かれてしまいます。
解決したいのですが、調べてもわからず、困ってしまいました。助けてくださると幸いです。
思うにVSCodeが使っているコンパイラ?がstackのそれと一致していないみたいな霊感を感じますが多分違いますかね……。
VS Codeが使っているコンパイラー、ではなくghcideという補完や型チェックを行うアプリケーションのバージョンが、プロジェクトで使用するGHCのバージョン(stackの場合stack.yamlに書いたresolverに対応するもの)と合っていないことによるエラーです。

しかし、本来であればVS Codeが自動で足りないghcideをインストールしてくれるはずなので、ちょっと奇妙ですね... :confused:
あと、今はghcideではなくhaskell-language-serverに移行することが推奨されているので、それも気になります。

利用しているVS Codeの拡張が何か気になります。私は普段VS Codeを使わないので、今どれを利用するべきなのか正直わかりませんが、古いものを使っていないでしょうか?
Haskell と`Haskell(legacy)`が入ってました。レガシーの方は無効にしてみましたが状況は変わりませんね……。
うーん、VS Code側の問題に見えますが、私にはこれ以上分からないので、エラーメッセージに従って、プロジェクトの stack.yaml を編集してGHC 8.8.2 (あるいはそれ以降)を使うよう変えてみるのが確実かなぁと思います。
GHC 8.6じゃないとビルド出来ないプロジェクトだったりすると面倒ですが...
stack.yamlresolver というキーを編集して、該当するGHCを使うLTS Haskellにしてください。
「該当するGHC」については https://www.stackage.org/ の「Latest releases per GHC version」に書かれています。