Emacs24でScala開発

2016/04/06追記: sbtやensimeのバージョンが上がっています。最新のドキュメントに当たって下さい。

明日こそはツーリングに出掛けようと考えていたところ、先週に続いて明日もあいにくの雨の予報です。ということで今回のブログも仕事ネタです。

Java VM上で動作する関数型言語として人気のあるScalaをEmacs24の上で快適に開発すべく、ensimeを導入してみました。と軽く書いてみましたが、ウェブの情報が微妙に古かったりして結構面倒でした。備忘も兼ねてざっくり整理しておきます。

基本的にはensimeのQuick Start Guideの通りにインストールすればOKです。ここでは最新のPlay Framework 2.3.8 (Typesafe Activator 1.3.2)でプロジェクトは作成済みとします。キーポイントは、sbt 0.13.7を使うよう明示することです。

  1. package-installでemacsにensimeをインストール
  2. ~/.sbt/0.13/plugins/plugins.sbtにプラグインのエントリ追加
    addSbtPlugin("org.ensime" % "ensime-sbt" % "0.1.5")
  3. プロジェクトルート/project/build.propertiesのsbtのバージョンを変更
  4. sbt.version=0.13.7
  5. プロジェクトのactivator起動
  6. gen-ensimeを実行し、.ensimeファイルを生成 (時間が掛かります)
  7. sbt-0.13.7をインストール
  8. emacsでプロジェクトルート(以下にある任意のファイル/フォルダ)を開く
  9. emacsで M-x ensime 、4で生成したファイルを指定
  10. しばらく待つとensime起動
  11. Happy Hacking!

Debian JessieとWindows 7の二つの環境で同様に構築できました。WindowsでCygwinを使っている場合であっても、上記2のホームディレクトリはcygwinのホーム(C:\cygwin\home\username等)ではなくWindowsのホーム(C:\Users\username)になるようです。

github上のensimeのリポジトリには-server, -emacs, -sbt等のサブプロジェクトが並んでいますが、emacsのpackageシステムを使えば必要なemacs lispはすべてインストールされます。

sbt-ensimeプラグインは0.1.5-SNAPSHOTでなくて大丈夫です。ensimeがsbtを呼び出す都合で、activatorとは別にsbtをインストールする必要があります。sbt 0.13.7をインストールしたら、必ずbuild.propertiesも更新して下さい。

JDKのソースファイルがインストールされていると、gen-ensine時に参照してくれるようです。WindowsならJDKにsrc.zipが同梱されていますが、Debianだとopenjdk-7-sourceパッケージを追加でインストールしておく必要があります。50MB弱あるのがネックですが。

初回のM-x ensime 実行時は、ミニバッファに "Updating ENSIME Server..." と表示されてからかなり時間が掛かります。気長に待ちましょう。ensime-serverが起動してemacsから接続できると、ミニバッファに "ENSIME ready. Death to null!" 等のメッセージが表示されます。

ToDoとして、ensimeから呼び出されるsbtをactivatorのものと同じにしたいのですが、できるんですかね。とりあえず問題なく動作しているので、今はこれでよしとします。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です