Haskellの統合開発環境をIntelliJ IDEAで構築する
Haskellでやりたいことがあるので少し勉強しようと思い、効率的な開発のために統合開発環境構築をする事にした。
日本ではあまりHaskellを使わないのかネット上の情報は古いものが多く、本家のサイトを調べていてかなり違いがあるのに気付いた。
手順の概略
手順は以下の通り
- Haskell Minimalインストーラー
Haskell compilar GHC, ビルドツールのCabal, Stackのインストールを行うインストーラー。これはmacOS, Linux, Windowsのものがあり、適宜選んで実行する。 - Haskell言語補助ツールのインストール
IntelliJ IDEAのプラグインで使う言語補助ツールStylish-Haskell, HLintをインストールする。 -
IntelliJにプラグインを導入
IntelliJ-HaskellというプラグインをIntelliJ IDEAに導入する。 -
テストプロジェクトの作成、動作確認
IntelliJ IDEAでお決まりのHello Worldプロジェクトを作成、実行する。
手順の詳細
各手順の詳細は次の通り
- Haskell Minimalインストーラー
本家のダウンロードサイトに行き二段目にあるMinimal installersのHow to get themから自分の環境にあったリンクへ飛ぶ、
Linuxはコマンドライン、他の二つはインストーラーになっているのでそれぞれ実行する。 -
Haskell言語補助ツールのインストール
ターミナル(コマンドプロンプト)で次のようなコマンドを実行する。
stack update
stack install stylish-haskell
これを実行すると~/.local/binがPATH変数に入っていないと言われるので.profileに追記しておく。シェルコマンドsource .profileで追記が反映される。
HLintは同様にして
stack update
stack install hlint
今度はPATH変数の事で文句が出ないはず。
- IntelliJにプラグインを導入
メニューバーのIntelliJ IDEAからPreferences(LinuxやWindowsならSettings)を選択。
Pluginの検索ボックスにIntelliJ-Haskellと入れて検索するとプラグインが現れるのでインストールする。(IntelliJ IDEAの再起動を促されるので再起動する)
無事インストールされていればPreferencesのなかにHaskellという項目ができている。
先ほど入れたstylish-haskellのパスを入れる場所があるので入れておく。FInderでは隠しディレクトリは見えないのでターミナルからコピーして持ってくるのが良いだろう。
HLintのオプションはまだよく分からないのでそのままにしておく。 -
テストプロジェクトの作成、動作確認
* Helloプロジェクト
FileメニューにHaskell Moduleというのができているはずなのでそれを選択する。
module名を要求されるので大文字で始まる言葉で指定する。
Helloと指定すると次のようなものの先頭行だけが入ったものが生成される。残り三行をコピーペーストする。
module Hello where
-- This is my first Haskell program!
main :: IO ()
main = putStrLn "Hello World!"
上部にあるRun Helloを押して実行する。無事Hello World!が出力されているのを確認する。実行時のIntelliJ IDEAの様子は次の画像のようなものである。
- REPLの動作確認
IntellJの下部にあるTerminalを起動してghciと入力するとread-eval-print loop (REPL)ができる。
GHCi, version 8.6.3: http://www.haskell.org/ghc/ :? for help
Prelude> 3*6
18
Prelude> 1/2+1/3
0.8333333333333333
Prelude> sqrt 2
1.4142135623730951
Prelude>
REPLを抜けるにはControl-Dを押す。
Haskell関連情報
今回の調査対象となったHaskellの統合開発環境構築に関する情報はそれぞれのGitHubページ
に記されている。
またHaskellに関する情報が本家のサイト内にDocumentationという項目がありそこに様々な情報へのリンクが掲載されている。初心者がまず訪れるべきページだろう。
まとめ
完全な動作確認はこれからだが、一通りIntelliJ IDEAを利用してHaskellのプロジェクトが作成できるようになった。
あとは時々stack updateを掛けて最新状態を維持することに注意する。