Pandocを見ているときに気づかぬうちにやっていたぽいね。
VSCodeでHLSがうまく動かないな…と思って調べていて気づいたのでメモ。 ただし、「HLSが動かないな…」と思っていたのは勘違いであったが、よく考えると一周回って勘違いじゃなくなったのでそれもメモ。
前提
実行環境はWin10+WSL2(Ubuntu18.04LTS)です。
HLSについてはこの記事が参考になります。VSCodeで動くHaskellのIDEです。
https://zenn.dev/konn/articles/1a60baba9848a1
ghcupはHaskellのインストーラです。ghc, cabal, hls, stack, ghcup(自身)をインストール、管理できます。
https://www.haskell.org/ghcup/
ghcupについてはこちらの記事が参考になります。
https://qiita.com/takayuki-uchida/items/07f0df29780ae2d6029b
ghcup set ...
を使わないとインストールしてもバージョン切り替わらないな…という事があるので注意(ghcだけかも。あと記事には書いてある(
他のは自動で切り替わったので)
ghcup list
でインストール済みのバージョンがリストで出るので確認しましょう。私はghcのバージョンが古いままだったのでhlsが動く最新に上げました。
VSCodeでHLSがうまく動いていないと思った理由は、適当なHaskellのライブラリを(Pandoc関係だけど)もってきて見ていた時に、マウスをかざしても何もpopupされなかったからでした。
今の理解では、VSCodeで編集(作成)するとHLSが正しく動き始めてライブラリ全体のファイルを見にいくような挙動をするので、読み込みだけしているとその処理がされないので一旦editして処理がはじまるのを待とう、ということになりました。
本題。
記事のタイトルはghcupでstackをインストールした際に出てくるメッセージをちゃんと見ようねっていうことですね。
!!! Additionally, you should upgrade stack only through ghcup and not use 'stack upgrade' !!!
stack upgrade
すると、どうやら~/.local/bin/
以下にstackが別途インストールされてしまう模様(私の環境では。which stack
でどこにあるか確認してください)。で、ghcupの管理から外れてしまうのでやめましょうねという。
ghcupでインストールする場合は/home/niszet/.ghcup/bin/stack
に入るはずです(私と同じ環境の場合)
最後にもう一つ。ghcupでインストールしたhlsを使い場合はVSCodeのHaskell拡張の設定のServer Executable Path
にそのpathを書かないとダメです。
私の場合は/home/niszet/.ghcup/bin/haskell-language-server-8.10.5
になります。
hlsはまだ9.0.xに対応していない?ようなので、recommendedのついている8.10.5とそれに対応したhlsのバージョンを指定して設定しましょう(bin/までの指定ではダメだった)
1時間くらい溶かしたので、覚書。やったことは書かないと忘れるので。