LoginSignup
22
17

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-03-27

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プロジェクト)

22
17
3

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
22
17