LoginSignup
7
5

More than 3 years have passed since last update.

WindowsでHaskellを使う(VSCode+WSL+stack +Haskell IDE Engine)

Last updated at Posted at 2020-04-16

この記事は何?

WSL1 (Windows Subsystem for Linux) + VSCode + stack +Haskell IDE EngineでHaskellの開発をする際の環境構築の手順を書き残します。仮想環境でVSCodeを使うとかなり重いので、VSCodeの本体はWindows上で、HIEやstack などのHaskell環境はWSL上で動かすことを目指します。
ただの忘備録なので、WSLが何か、HIEとは何か等は説明しません。

手順

  1. WindowsにVSCodeをインストール

  2. コントロールパネルから「Windowsの機能の有効化または無効化」を表示し、「Windows Subsystem for Linux」のチェックボックスを「オン」にして再起動する

  3. Microsoft StoreでUbuntu(WSL)を入れる

  4. Ubuntuを起動し,初期設定をする
    ユーザ名やパスワードを設定します

  5. 以下をUbuntuで実行する (emacsはただの好み)

    bash
    sudo apt update
    sudo apt upgrade
    sudo apt install -y emacs
    
  6. Ubuntuにstackをインストールする

    bash
    wget -qO- https://get.haskellstack.org/ | sh
    
  7. Ubuntuの設定(~/.bashrc)ファイルに以下を追記
    Usernameは適宜読み替えてください

    ~/.bashrc
    export PATH="/home/Username/.local/bin:$PATH"
    
  8. stackの初期設定
    emacs等で、Ubuntu側の ~/.stack/global-project/stack.yaml を以下のように編集します。resolverは適当なものをstackageから選んでください。ここでは、lts-12.26 (ghc-8.4.4)にします。

    ~/.stack/global-project/stack.yaml
    packages: []
    resolver: lts-12.26
    
  9. GHCのインストール
    Ubuntuで以下を実行します。

    bash
    stack setup
    
  10. Haskell IDE Engineのインストール
    Ubuntuで以下を実行します。詳細はHIEのGitHubを参照してください。ビルドにはとても時間がかかります。
    なお、HIEはビルドしたバージョンにしか対応しないので、他のバージョンのGHCを使った開発をしたい場合はその都度ビルドしなおす必要があるそうです。

    bash
    sudo apt install libicu-dev libtinfo-dev libgmp-dev
    git clone https://github.com/haskell/haskell-ide-engine --recurse-submodules
    cd haskell-ide-engine
    stack ./install.hs hie-8.4.4
    stack ./install.hs data
    
  11. WindowsでVSCodeを起動し、日本語化のパッケージを入れる
    「Japanese Language Pack for Visual Studio Code」です。

  12. VSCodeとUbuntuを繋ぐパッケージ 「Remote - WSL」 をVScodeに入れる

  13. VSCodeでF1キーを押し、「Remote-WSL: New Window」を実行する
    新しいウインドウが立ち上がるので、前のwindowは消す。このウインドウはWSLと通信しているため、例えば「ファイル」を開くとUbuntu内のファイルを選択できるようになっている。

  14. 先ほどの新しいウインドウで、VSCodeに「Haskell Language Server」というパッケージを入れる

  15. VSCodeのsettings.jsonに、以下を追記する

    settings.json
    "languageServerHaskell.hieExecutablePath": "~/.local/bin/hie"
    
    

最後に

以上で設定は終わりです。
WindowsのVSCodeを通して、HIEの機能を使いながらWSL(Ubuntu)上でHaskellの開発ができるようになったと思います。仮想環境を使うよりもだいぶ軽くて快適な開発環境になります。
まもなくWSL2が出るらしいので、更に快適になりそうですね。

ウインドウを閉じるたびに13.の手順が必要なことに注意してください。

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5