Help us understand the problem. What is going on with this article?

IntelliJでHaskellを実行する(haskell stackプロジェクト)

More than 3 years have passed since last update.

やりたいこと

stackで管理さているHaskellをIntelliJで開発し、実行すること

プラグインintellij-haskellのインストール

プラグインintellij-haskellのインストール方法と、新規プロジェクトの作成方法はこちらにあります
写真付きでわかりやすいです。

HaskellをIntelliJで使えるようになりました!

IntelliJで既存のstackプロジェクトを読み込む

ほとんど上記の記事通りなのですが、すこし注意点を書きたいと思います

Import Projectを押す
Screen Shot 2017-08-24 at 2.25.35 pm.png

stackプロジェクトのディレクトリを指定して[Open]([開く])を押す

Screen Shot 2017-08-24 at 2.27.57 pm.png

ここでHaskell Stackを選択する
(ここが注意点です。ぼくの場合は自動的にHaskell Stackと選択されず、後々エラーが発生しました)

Screen Shot 2017-08-24 at 2.28.59 pm.png

以下の写真だと幾つかstackがありますが、初期画面だと一つもないと思います。
ターミナルでwhich stackで表示されるパスを指定すれば、
以下の写真のようにProject SDKが選択できるようになります。

Screen Shot 2017-08-24 at 2.36.03 pm.png
(Mac利用者でstackが隠しフォルダ内にインストールされてFinderで選択できない場合は、「Cmd+. ピリオド」をすると隠しファイルを見えるようになります:参考:http://minto.tech/mac-kakusifile/

[Finish]を押して、完了です。

このあと、「Busy with building OOO ...」とか「Registering OOO ... 」とかが割りと時間かかりますが、待てばOKです。

本題:IntelliJ内で実行する方法(stack exec)

まず[Run] > [Edit Configurations]をクリックします

Screen Shot 2017-08-24 at 1.20.03 pm.png

以下の[+]を押して、

Screen Shot 2017-08-24 at 1.21.00 pm.png

[Haskell Stack]>[Haskell Stack Runner]をクリックします
(そのままのフォーカスで「sta」ぐらいまで入力すると出てきます)

Screen Shot 2017-08-24 at 1.20.52 pm.png

そうすると、Unnnamedという名前で実行設定が作成されます。
Executableの欄は自動で「my-first-haskell-app」になりました。
(IntelliJのプロジェクト名が「my-first-haskell-app」です)

Screen Shot 2017-08-24 at 1.21.14 pm.png

「Unnamed」だとわかりづらいので、「Main」に変更しました(任意)。

Screen Shot 2017-08-24 at 1.26.37 pm.png

なんとなく、Main.hsを「hello, world」に変えて、

Main.hs
module Main where


main :: IO ()
main = putStrLn "hello, world"

[Run]のボタンを押せば、実行できます。
Screen Shot 2017-08-24 at 1.27.44 pm.png

以下のようにIntelliJでhello, worldが実行できました。
Screen Shot 2017-08-24 at 1.30.33 pm.png

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版で開発者さんたちが活発に開発中です。
hidea.gif

やっぱりHaskellをIntelliJで開発できるのは、とても魅力的ですよね。応援を込めて、皆さんのスターをお願いします!

GitHub: rikvdkleij/intellij-haskell: IntelliJ plugin for Haskell

nwtgck
最近はScrapbox → https://scrapbox.io/nwtgck
https://scrapbox.io/nwtgck
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away