haskell-jp / beginners #18 at 2021-09-25 17:57:46 +0900

VSCodeで
The Haskell server crashed 5 times in the last 3 minutes. The server will not be restarted.

というエラーが発生しました。
stack clean --full でキャッシュを掃除してVSCodeを再起動したのですが依然と同じエラーが出ます。
解決方法を募集したいです。
command+Shift+PHaskell:Restart Haskell LSP server を実行しても同じエラーが出ます。
問題のエラーが起きているディレクトリーで haskell-language-server-wrapper -dstack exec -- haskell-language-server-wrapper -d を実行すると、もう少し詳細な原因が分かるでしょう
Executable named haskell-language-server-wrapper not found on path:

と出てきました。
stack exec -- haskell-language-server-wrapper -d を実行しました。
何が出力されましたか?恐らく、すぐに終了してしまうと思うのですが、終了してしまう前に何が出力されたか、だけでもヒントになると思います。
stack exec -- haskell-language-server-wrapper -d を実行したところ
Executable named haskell-language-server-wrapper not found on path: ["/Users/sirkerf/Desktop/programming/Haskell/haskell_sutdy/yaminabe/.stack-work/install/x86_64-osx/2d587c00132ec5e8f20b6c3ddbee5856cd0a90966b8bb007376d619fc2682135/8.10.7/bin","/Users/sirkerf/.stack/snapshots/x86_64-osx/2d587c00132ec5e8f20b6c3ddbee5856cd0a90966b8bb007376d619fc2682135/8.10.7/bin","/Users/sirkerf/.stack/compiler-tools/x86_64-osx/ghc-8.10.7/bin","/Users/sirkerf/.stack/programs/x86_64-osx/ghc-8.10.7/bin","/Users/sirkerf/.pyenv/shims","/Users/sirkerf/.pyenv/bin","/Users/sirkerf/.rbenv/shims","~/.rbenv/shims","/usr/local/bin","/usr/local/bin","/usr/bin","/bin","/usr/sbin","/sbin","/Library/TeX/texbin","/Library/Apple/usr/bin","/Users/sirkerf/.local/binexport"]

と出力されました。
うーん、そもそもインストールできていないのかな... VSCodeのHaskellプラグインの設定に、haskell-language-serverをインストールしたディレクトリーが書いてあると思うので、そのパスをフルパスで指定して実行するとどうなりますか?
VSCodeのHaskellプラグインの設定
これがどこかわからなくて困りました……。
設定は https://qiita.com/y-w/items/614843b259c04bb91495 のとおり、JSONで開けましたよね。
https://github.com/haskell/vscode-haskell#configuration-options 曰く、 haskell.serverExecutablePath という名前のプロパティにあるそうです(多分デフォルトのままなんでしょうけども)
haskell-language-serverをインストールしたディレクトリーが書いてあると思うので
設定を開いたところ、見当たりませんでした。
となると多分デフォルトの値なんでしょうね。
VSCode使わないから正直これ以上どう調べるか分からないなぁ。どなたか使っている方助け船を! :pray:
一度 vscode の拡張機能 Haskell をアンインストールして、あらためて、インストールするとどうなりますか?
VSCodeの .hs ファイル全てにおいて開くと1行目に必ず赤い線が引かれるようになりました。
赤い線のあたりにマウスのポインタをもっていくと、なにがしかのメッセージがでていませんか?そのメッセージはどういうものですか?
わたくしの以下の環境ではとくに問題はないのですが。vscode のバージョン1.60.2 拡張機能Haskellのバージョン1.7.1にしても同じでしょうか?
% uname -a
Linux tpp1g3 5.11.0-36-generic #40~20.04.1-Ubuntu SMP Sat Sep 18 02:14:19 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
% code --version
1.60.2
7f6ab5485bbc008386c4386d08766667e155244e
x64
% code --list-extentions --show-versions                                                                                                                                             
[email protected]
[email protected]

Multi Cradle: No prefixes matched
pwd: /Users/sirkerf/Desktop/programming/Haskell/haskell_sutdy/yaminabe
filepath: /Users/sirkerf/Desktop/programming/Haskell/haskell_sutdy/yaminabe/fizzbuzz.hs
prefixes:
("./src",Stack {component = Just "yaminabe:lib", stackYaml = Nothing})
("./app/Example15.hs",Stack {component = Just "yaminabe:exe:yaminabe-exe", stackYaml = Nothing})
("./app/Main.hs",Stack {component = Just "yaminabe:exe:yaminabe-exe", stackYaml = Nothing})
("./app/Paths_yaminabe.hs",Stack {component = Just "yaminabe:exe:yaminabe-exe", stackYaml = Nothing})
cradle

と出ます。
vscode のバージョン1.60.2 拡張機能Haskellのバージョン1.7.1にしても同じでしょうか?
はい、同じです。
赤い線のメッセージはどういうものですか?
赤い線のメッセージは
Multi Cradle: No prefixes matched
pwd: /Users/sirkerf/Desktop/programming/Haskell/haskell_sutdy/yaminabe
filepath: /Users/sirkerf/Desktop/programming/Haskell/haskell_sutdy/yaminabe/fizzbuzz.hs
prefixes:
("./src",Stack {component = Just "yaminabe:lib", stackYaml = Nothing})
("./app/Example15.hs",Stack {component = Just "yaminabe:exe:yaminabe-exe", stackYaml = Nothing})
("./app/Main.hs",Stack {component = Just "yaminabe:exe:yaminabe-exe", stackYaml = Nothing})
("./app/Paths_yaminabe.hs",Stack {component = Just "yaminabe:exe:yaminabe-exe", stackYaml = Nothing})
cradle

です。
プロジェクトのルートに以下の内容の hie.yaml というファイルをてみてください。
cradle:
  stack:

どうなりますか?
hie.yaml は消したので存在しません。
↑の内容で作成するとどうなりますか?
直りました!ありがとうございます!
よかった。:relaxed: