最近Atomが面白くなってきて、いろんなパッケージを試したり作ったりしているのですが、普段は主にScalaでプログラミングをしているので今日はAtomでのEnsimeを使ったScala開発環境を紹介したいと思います。
EnsimeというのはEmacsで有名なScala開発環境ですが、バックエンドと各種エディタ向けのプラグインが分離されており、Emacs以外のエディタでも利用することができます。
まず、なにはともあれsbtをインストールします。MacならHomebrewで入れるのが簡単です。
$ brew sbt install
Atomには以下のパッケージをインストールしておきます。Atom上からsbtコマンドを実行するためにterminal-plusなどのパッケージも入れておくと便利です。
ホームディレクトリ配下に.sbt/0.13/plugins/plugins.sbt
というファイルを以下の内容で作成します。
addSbtPlugin("org.ensime" % "ensime-sbt" % "0.2.3")
同じくホームディレクトリ配下の.atom/config.cson
にEnsimeが使用するsbtのパスを設定します(初回実行時に聞かれるのでそのときに指定することもできます)。
"*": editor: invisibles: {} softWrap: true ... Ensime: sbtExec: "/usr/local/bin/sbt"
あとはおもむろにsbtを使用するプロジェクトのルートディレクトリでsbt gen-ensime
コマンドを実行してEnsime用のファイルを生成します(build.sbt
の依存関係などを変更した場合は都度sbt gen-ensime
コマンドでファイルを生成しなおす必要があります)。
以上で準備は完了です。Atomで該当のディレクトリを開き、コマンドパレットからEnsime: Start
を実行するとEnsimeが起動します。
Ensimeの実行中はマウスカーソルを変数やメソッド等に重ねると型をホバー表示することができます。また、ctrl + space
で補完を行ったり、cmd + click
で定義元にジャンプしたり、shift + cmd + t
で型検索ができたりなど、IDEっぽい機能を利用することができます。
補完候補が出てくるのにやたら時間がかかったりなど、現時点ではIntelliJと比べると厳しい感じは否めませんが、エディタ自体が重くなってしまうということはないので入力を妨げられるようなことはありません。IDEというよりは型のホバー表示や定義部分へのジャンプといった便利機能をコーディングの補助的に使うといった利用方法が良さそうです。
Atomには他にもScala開発をサポートするパッケージがあるのでこれらを組み合わせてみるのも面白そうです。