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

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

More than 1 year has passed since last update.

intellij-haskellというプラグインを使って、効率よく開発ができるようになりました!!

環境

Ubuntu 16.04LTS
mac OS Sierra

手順

  1. stackをインストール
  2. IntelliJをダウンロード
  3. プラグイン「IntelliJ-Haskell」をインストール
  4. Create New Projectをクリックし、Haskell moduleを選択。さらに、Configureをクリックし、stackのパスを入力する。

1. stackをインストール

wget -qO- https://get.haskellstack.org/ | sh

を実行すれば、stackが自動でインストールされると思います。(詳しくは、stackの公式サイトをご覧ください。)
stackの概要については、こちらの記事をご覧になると詳しく知ることができると思います。

2. IntelliJをダウンロード

https://www.jetbrains.com/idea/
からダウンロードできます。(公式サイト)

3. プラグイン「IntelliJ-Haskell」をインストール

  1. File -> Project を選択
  2. Pluginを選択し、Brows repositories... を選択
  3. IntelliJ-Haskellをインストール

インストールできたら、IntelliJを再起動する。

4. Create New Projectをクリックし、Haskell moduleを選択。さらに、Configureをクリックし、stackのパスを入力する。

僕のubuntuの環境では、/home/[ユーザ名]/.local/bin/stack としました。

macの環境では、/usr/local/bin/stack でいけました。

スクリーンショット 2017-03-19 9.55.12.png

エラーが出た時

私のmac環境で以下のエラーが出ました。

Something went wrong while calling hlint. Error: No compiler found, expected minor version match with ghc-8.0.2 (x86_64) (based on resolver setting in /Users/v97ug/dev/haskell/free-game/TestHaskell3/stack.yaml). To install the correct GHC into /Users/v97ug/.stack/programs/x86_64-osx/, try running "stack setup" or use the "--install-ghc" flag. To use your system GHC installation, run "stack config set system-ghc --global true", or use the "--system-ghc" flag.

どうやらGHCが入っていなかったようで、

stack setup --install-ghc

を実行すると、無事プラグインが動作しました。

既存のstackのプロジェクトを読み込む場合の注意

Openで開くのではなく、Import Projectで開くと上手く読み込んでくれます。

IntelliJの最初の画面.png

他に僕が気づいたこと

  • IntelliJ内で、実行ができない模様(できる方がいましたら教えてください!) 追記:実行できました!!次の記事がとても参考になります。 IntelliJでHaskellを実行する(haskell stackプロジェクト)
  • New Projectでプロジェクトを作成して、コマンドラインでstack execしようとすると、パスがないなどのエラーが発生する。(最初に、コマンドラインでstack newしてから、Import ProjectでIntelliJに取り込んだほうがいいと思われる) 追記:stack exec プロジェクト名で実行できます。このとき、プロジェクト名-exeとはせずに、プロジェクト名とすればできます。
  • asパターンでかいた変数を、なぜかリファクタリングできない。

IntelliJを使う利点

  • リファクタリングができる!(関数名などを一括で変更できる)
  • type signatureを自動で出してくれる。(type signatureを書いていない時に、alt+Enterを押す)
  • 静的解析してくれる。
  • moduleを作る時、先頭が小文字のmodule名だと、エラーが出るようになる。

あとがき

以前はatomでHaskellの開発をしていましたが、IntelliJを使えばリファクタリングができるので、こっちに乗り換えました。とても便利です。

参考

Haskellで、リファクタリングする方法
stack
IntelliJ-Haskell
IntelliJでHaskellを実行する(haskell stackプロジェクト)

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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした