Emacs で Scala 開発環境を構築 (Ensime)

    はじめに

    edX で受けた プログラミングパラダイム の講義のなかで,

    ” これからは, Scala と Erlang だ!C++ と Java はレガシーになりつつある!”

    とのことだったので, ちょっと scala をいじってみようと思います.

    [toc]

    Environment

    • Linux Mint 16 64bit
    • Scala 2.9

    Installing Scalas

    Installing the JDK

    Scala は JVM 上で動作する. まずは JDK をインストール.

    [sourcecode language=”sh” title=””]
    sudo apt-get install openjdk-7-jdk
    [/sourcecode]

    Installing sbt

    Scala のビルドツールである sbt を入れる. 以下から Download して, 解凍. なかにある bin ディレクトリにパスを通す.

    日本語のドキュメントがあった.

    Installing Scala

    [sourcecode language=”sh” title=””]
    sudo apt-get install scala
    [/sourcecode]

    以下から最新版をダウンロードしてもよい.

    ダウンロードしたら bin ディレクトリにパスを通す.

    [sourcecode language=”sh” title=””]
    # Scala
    export PATH=$HOME/app/sbt/bin:$PATH
    export PATH=$HOME/app/scala/bin:$PATH
    [/sourcecode]

    Hello Scala

    それでは, お決まりの儀式から.

    [sourcecode language=”scala” title=””]
    object Hello extends App {
    println ("Hello, Scala!")
    }
    [/sourcecode]

    以下で実行.

    [sourcecode language=”sh” title=””]
    % scalac Hello.scala
    % scala Hello
    Hello, Scala!
    [/sourcecode]

    Installing Emacs

    Emacs 自体のインストール方法は省略.

    Installing scala-mode

    scala-mode と scala-mode2 がある. 2 を入れた.

    Installing Ensime

    Scala 用の統合開発環境. インストールはは github にしたがえばよい.

    Ensime Server をダウンロードしてロードパスの通った場所におく.

    (ハマリメモ. github から落としてきたやつではなくて, Dropbox から落とした Reliese 番でないとダメなんだね. めちゃくちゃハマった)

    .ensime を作成

    ensime を利用するには, .ensime という設定ファイルが必要.

    上記を参考に~/.sbt/plugins/plugins.sbt を作成し, 以下を記入.

    [sourcecode language=”language” title=””]
    resolvers += Resolver.sonatypeRepo ("snapshots")

    addSbtPlugin ("org.ensime" % "ensime-sbt" % "0.1.5-SNAPSHOT")
    [/sourcecode]

    M-x ensime-config-gen というコマンドでも対話的に設定ファイルが作成できるらしい.

    Hello.scala を開いたディレクトリで以下を実行.

    [sourcecode language=”language” title=””]
    sbt "ensime generate"
    [/sourcecode]

    emsime 実行

    これで, .ensime が生成される.

    Emacs 上で M-x ensime を実行. 先ほど生成した.ensime の場所を教える.

    今日はこんなところで. 逐次, 追記予定.

    追記 2014-06-21

    sbt-mode というものもある.

    機能的には ensime とおなじようなことができるし, ensime ファイルを作成しなくてもいいので導入が楽.

    ensime よりよいところは, M-x sbt-send-region で Scala REPL にリージョンを送信することができるところ. これは便利そう.

    また, repl を autoload する方法もあるようだ.