やりたいこと
stackで管理さているHaskellをIntelliJで開発し、実行すること
プラグインintellij-haskellのインストール
プラグインintellij-haskell
のインストール方法と、新規プロジェクトの作成方法はこちらにあります
写真付きでわかりやすいです。
IntelliJで既存のstackプロジェクトを読み込む
ほとんど上記の記事通りなのですが、すこし注意点を書きたいと思います
stackプロジェクトのディレクトリを指定して[Open]([開く])を押す
ここでHaskell Stackを選択する
(ここが注意点です。ぼくの場合は自動的にHaskell Stackと選択されず、後々エラーが発生しました)
以下の写真だと幾つかstackがありますが、初期画面だと一つもないと思います。
ターミナルでwhich stack
で表示されるパスを指定すれば、
以下の写真のようにProject SDKが選択できるようになります。
(Mac利用者でstack
が隠しフォルダ内にインストールされてFinderで選択できない場合は、「Cmd+. ピリオド」をすると隠しファイルを見えるようになります:参考:http://minto.tech/mac-kakusifile/ )
[Finish]を押して、完了です。
このあと、「Busy with building OOO ...」とか「Registering OOO ... 」とかが割りと時間かかりますが、待てばOKです。
本題:IntelliJ内で実行する方法(stack exec)
まず[Run] > [Edit Configurations]をクリックします
以下の[+]を押して、
[Haskell Stack]>[Haskell Stack Runner]をクリックします
(そのままのフォーカスで「sta」ぐらいまで入力すると出てきます)
そうすると、Unnnamedという名前で実行設定が作成されます。
Executableの欄は自動で「my-first-haskell-app」になりました。
(IntelliJのプロジェクト名が「my-first-haskell-app」です)
「Unnamed」だとわかりづらいので、「Main」に変更しました(任意)。
なんとなく、Main.hsを「hello, world」に変えて、
module Main where
main :: IO ()
main = putStrLn "hello, world"
以下のようにIntelliJでhello, worldが実行できました。
intellij-haskell
以前(2017/3/7)、IntelliJで実行できなかったので、https://gitter.im/intellij-haskell/Lobby で尋ねたところ、
まだ、未実装ということで、将来的には実装されそうな感じでした。
@rikvdkleijさんの返答
@nwtgck That is not yet implemented in latest beta, probably in next beta, @zjhmale is busy with implementation
intellij-haskellを使えば、IntelliJの定義元ジャンプや、変数名のリファクタリングなどもでき、Haskellでの開発がすごくやりやすなっています。まだbeta版で開発者さんたちが活発に開発中です。
やっぱりHaskellをIntelliJで開発できるのは、とても魅力的ですよね。応援を込めて、皆さんのスターをお願いします!
GitHub: rikvdkleij/intellij-haskell: IntelliJ plugin for Haskell