このエントリはバージョンアップグレード版があります
Haskell - 2015年のMac + Haskell + IntelliJことはじめ、あるいはghcの再インストール - euphonictechnologies’s diary
このエントリも部分的に役に立ちます。
IDEじゃなきゃやだやだ!
昔々、私がプログラミングを始めた頃はまだ手元にスクリーンエディタがなくて、ラインエディタしかなかった。それでも10000行を超えるプログラムを書いていたのだから人間、開発環境なんかなくても長いプログラムが書けるんじゃないかなって気がする。でもそれは十年以上前の話、当時すでにスクリーンエディタは存在していたし、WYSIWYGワープロもあった。時間が経つに連れてTurbo C、Visual C++と順番にリッチ環境でプログラムを書くようになっていった私はついにIDEのインテリセンスがなければ関数名も思い出せないようになってしまった。人間便利になれば退化するものだなと思う。人間なんて大上段から言ってるけど、要は私がボケたってだけの話なのかも。とにかくEmacsとかむつかしいからやだやだ!IDEが欲しい!というノービスHaskellerにおすすめなのがHaskell + IntelliJ IDEA。ideahプラグインというのがあってIntelliJの使い慣れたIDE上でHaskellが書ける。早速インストールから順番にやってみよう。環境としてはOSX Mavericsを想定している。
ちなみに
ideahは開発が止まっているようで、公式にあるプラグインはGitHubで開発が進められている:
Atsky/haskell-idea-plugin · GitHub
Haskell + cabal-install by homebrew
MacなのでhomebrewでHaskellコンパイラのghcとそのパッケージ管理システムcabalをインストールしよう。 やり方は簡単で
brew install ghc brew install cabal-install
これだけ。 次にCommand line toolsをインストールする(後日談参照)。
xcode-select --install
からの
brew reinstall gcc # まだinstallしていない場合は"install"で
で、gccがインストールできた。llvmに対応していないので、Maverics以降はgccが必須。
ここまではIntelliJ関係ない普通のGHCコンパイラのインストール方法。なので、ghcにパスが通っていることを確認すれば、シェルスクリプトから動作チェックをすることもできる。
$ echo "module Main where > main = do > print \"Hello, world.\" > " > hello.hs $ ghc hello.hs [1 of 1] Compiling Main ( hello.hs, hello.o ) Linking hello ... $ ./hello "Hello, world."
ghcのインストールは完了した。cabalは後で使おう。
IntelliJにHaskellプラグインを入れよう
私はここを参考にしながらプラグインを入れてみた:IntelliJでHaskellプログラミング - Qiita。
入れるプラグインはこのプラグイン:JetBrains Plugin Repository :: Haskellで、Github上でコードで開発が行われている:Atsky/haskell-idea-plugin - GitHub。
このプラグインは普通にIntelliJのプラグインブラウザからインストールできる。
Preferences -> Plugins (IDE Settingsセクション内), Browse RepositoriesからHaskellを検索ウィンドウにタイプして探してインストールしよう。
ghc-modをインストールしてシンタックスチェック
これで、GHCコンパイラは準備完了、IntelliJにプラグインが入って最後にシンタックスチェックをIntelliJで走らせるためにghc-modを入れよう。これも簡単、cabalからインストールできる。まず、cabal update
でcabalをアップデートしよう。
$ cabal update Downloading the latest package list from hackage.haskell.org Note: there is a new version of cabal-install available. To upgrade, run: cabal install cabal-install
指示通り、cabal install cabal-installしてアップグレードをしよう。
$cabal install cabal-install
少し時間がかかる。終わったら最後にghc-modをインストールしよう。
$cabal install ghc-mod
これで、準備完了。ghc-modの場所をプラグインの設定画面から教えてあげよう。
こんなかんじになるはず。ghc-modとghc-modiは普通以下の場所にインストールされるはず。
- ~/.cabal/bin/ghc-mod
- ~/.cabal/bin/ghc-modi
これで、準備完了。
Hello, world.してみる
早速IntelliJを使ってHello, world.してみよう。
まずはFile -> New Project...からHaskellを選択。
次の画面でプロジェクトの保存場所とプロジェクト名を決定したらFinishして新規プロジェクトを作成。 左ペインのsrcの中にMain.hsがあるのでMainモジュールを書こう。具体的には下のように
以下のコードをMain.hsに書き込もう。
module Main where main = do print "Hello, world."
これを実行してみる。メニューからRun -> Run 'プロジェクト名'で実行する。
たぶんこういうエラーが出るのでSDKを設定する。
右の"New"ボタンを押すとSDKをたせるのでghcの場所を指定してあげよう。brewでインストールすると/usr/local/Cellar/ghc/7.6.3_2
みたいな場所にインストールされるはず。
うまくSDKをインストールできると実行がすぐに終わって
のように表示されるはず。 これで導入は完了。結構簡単だったのではないだろうか。これでIDEでバリバリコーディングができるね!