Emacs+EnsimeでScala開発環境を作った

動機

最初はIntelliJを使ってましたが、以下の理由でEmacs+Ensimeを使いはじめました。

IntelliJが重く感じた

・マウスを使いたくなかった

環境

・Mac OSX Yosemite

Emacs 24.5

構築

Scala+sbt

brew install scala

brew install sbt

Emacs

brew install emacs

scala-mode2+Ensime

~/.emacs/init.elに以下の記述を追加しEmacsを再起動

(require 'package)
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/") t)
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))
(package-initialize)

(unless (package-installed-p 'scala-mode2)
(package-refresh-contents) (package-install 'scala-mode2))
(unless (package-installed-p 'ensime)
(package-refresh-contents) (package-install 'ensime))


(setenv "PATH" (concat "PATH_TO_SBT:" (getenv "PATH")))
(setenv "PATH" (concat "PATH_TO_SCALA:" (getenv "PATH")))


(require 'scala-mode2)
(require 'ensime)
(add-hook 'scala-mode-hook 'ensime-scala-mode-hook)

sbt pluginの設定

~/.sbt/0.13/plugins/plugins.sbtに以下を追加

resolvers += Resolver.sonatypeRepo("snapshots")

addSbtPlugin("org.ensime" % "ensime-sbt" % "0.1.5")

// project/plugins.sbt
dependencyOverrides += "org.scala-sbt" % "sbt" % "0.13.8"

プロジェクト毎のEnsime用設定ファイル生成

プロジェクトのディレクトリに移動し以下コマンドを実行

sbt gen-ensime

Ensimeを起動

Emacs起動後に以下を実行

M-x ensime

Emacs+Ensimeの感想

・キーボードだけで大体コーディングできるから楽

デバッグIntelliJの方がかなり高機能

・補完もIntelliJのが良いと思うけどあんま気にならない

・作ってるのが小さいシステムなので今の所問題無いが、大規模になったらどうなるか不明

参照したページ

github.com

github.com