CLOVER🍀

That was when it all began.

IntelliJ 11でfscを使う

以前に、IntelliJfscとsbtの設定方法をまとめたことがありましたが、ちょっと前にリリースされたIntelliJ 11の新機能に以下のような記載がありました。

Fast Scala Compiler support (FSC)

http://www.jetbrains.com/idea/whatsnew/index.html

はて?前もfscは使えていた気がするのですが…まあ、確かにちょっとぎこちない感じがしていたので、試してみることにしました。

最近、自宅ではEmacsですし、仕事はEclipseなのでまずはIntelliJのアップグレードからでしたが…。

とりあえず、プロジェクトを作成します。
「File」→「New Project」、またはQuick Startから「Create New Project」を選んで、プロジェクトを作成しましょう。

なんか、イルカの絵になっていてキレイですね♪

プロジェクト名などは、適当に。

ソースディレクトリも、お好みで。

Facetでは、Scalaを使用するようにチェックを入れておきます。

とりあえず、ここまででFinishを押します。

プロジェクトが開きますので、

「File」→「Settings」またはショートカットボタンから、「Settings」を開きます。
「Settings」では、「Compiler」→「Scala Compiler」を選び、「Project FSC」内のCompiler Libraryで使用するScalascala-compilerが含まれるライブラリを指定します。

ここで、ApplyまたはOKを選択。
続いて、「File」→「Project Structure」またはショートカットボタンから、「Project Structure」を開きます。
開いたら、「Facets」からScalaを選び、Scalaを適用しているモジュールを選択して、「Use Project FSC」のラジオボタンを選びます。

ここで、ApplyまたはOKを選んで「Project Structure」を閉じます。

あとは、コンパイルなり実行なりを行うと、fscが使われます。
よーく見ると、右上にポップアップが出ていますね。

設定がちょっと直感的ではない気もしますが、まあ前よりは良くなったかな…。sbtを使うまでもないちょっとしたプログラムの作成には、fscで事足りることもあるでしょうから、知っておいて損はないと思います。

なお、ここで使うfscの挙動を見ていると、現在のソースコードで必要なライブラリのクラスファイルしか見ていないようなので、新たに別のライブラリに依存する処理を書いたりすると(例えば、Hello World程度のものから、コレクションのmapとかforeachを使う、など)、ちょっとコンパイル時間が伸びます。その後は、普通に高速になりますが。

その点は注意っぽいですね。

参考)
Real FSC support
http://blog.jetbrains.com/scala/2011/10/05/real-fsc-support/