sbt + sublime text + ensimeでのプロジェクト作成〜debug

タイトル通りのことを行う為の手順についてです。
予めマシンにはscala、sbt、sublime text、ensimeと、sublimeにはensimeのための
プラグインがインストールしてあるものとします。

1.プロジェクト作成

1-1.プロジェクトのルートフォルダにて、以下のコマンドを実行する。

$ mkdir -p src/main/scala

1-2.build.sbtを作成する。
ルートフォルダ直下に、build.sbtを作成し、以下のように記述する。

lazy val root = (project in file(".")).
  settings(
    name := "sample-app",
    version := "1.0",
    scalaVersion := "2.10.4"
  )

ここまでで以下のようなフォルダ構成になればOK。

$ tree
.
├── build.sbt
└── src
    └── main
        └── scala

1-3.mainの作成
scalaフォルダの中に、mainを作成する。
試しにこんな感じでつくった。

object Startup{
  def main(args: Array[String]) :Unit = {
    val a = "aaa"
    val b = "bbb"
    val c = a + b
    println(c)
  }
}

1-4.コンパイル
以下のコマンドでコンパイルする。

$ sbt compile

1-5.実行
以下のコマンドで実行する。

$ sbt run

2.ensimeでのデバッグ

2-1.sbtでの.ensimeファイルの作成
sbtのコンソールで、以下のコマンドを実行する。


$ sbt
> ensime generate

2-2.ensime serverの起動
sublime textより、ensime serverを起動する。

[右クリック] - [Ensime] - [Maintenance] - [Startup]

2-3.ブレークポイントの指定

ブレークポイントを設定したい行を選択し、[右クリック] - [Ensime] - [Debugging] - [Toggle breakpoint]。
ブレークポイントは、mainメソッドの一行目では上手くいかなかった・・・

2-4.実行
[右クリック] - [Ensime] - [Debugging] - [Start debugger]

3.外部jarの追加

上記まででdebugまでは終わりだが、ついでに参照するjarを配置してdebugする手順を書いておきます。

3-1.jarの配置
プロジェクト直下にlibフォルダを作成し、jarを配置する。(sbtのアンマネージド管理の場合)

3-2. .ensimeファイルの再作成
以下のコマンドで.ensimeファイルを再作成する。

$ sbt
> ensime generate


参考サイト
【Scala初心者向け】sbtを触ってみよう! | キャスレーコンサルティング 技術ブログ
最強!?Ensimeを利用したSublime Text3のScala開発環境(playでもliftでも) - Qiita