2010年12月23日木曜日

Notepad++ の NppExecプラグインで Scala のコンパイルと実行

1. ちょっとコードを試したいときは REPL

Scala で、ちょっとコードを試したいときは、コマンドラインから

scala

と入力し REPL を起動。

特別なコマンドを入力しなくても、複数行の入力に対応しているので便利。

CropperCapture[7]

 

2. エディタを使うなら Notepad++

少し長いコードを試したいときは、Notepad++ EUC-JP 対応版 を利用する。このエディタは起動が早いので、さっと書きたいときに重宝している。

上記のリンクより Notepad++ をダウンロードし、解凍したものを管理者権限が必要のないフォルダへ配置。C:\Program Files (x86) へ入れなかったのは、後述するプラグインが動作しなかったため。

 

キーワードの色付け

Scala のコードを色付けしたい場合は、

Dependent on your installation configuration, it's either in \Documents and Settings{your profile name}\Application Data\Notepad++\userDefineLang.xml or Notepad++ installation folder\userDefineLang.xml

(Notepad++ custom syntax highlighting setting - where to look for it? - Super User より)

CropperCapture[9]2Scala をインストールしたフォルダ内にある

  • scala\misc\scala-tool-support\notepad-plus\userDefineLang.xml

を Notepad.exe のあるフォルダに置いて Notepad++ を再起動。

これによりメニューの「言語」に `Scala’ が追加される。

(%APPDATA% の方に置いたら表示されなかった。)

 

「実行...」ダイアログ で コンパイル と実行

CropperCapture[8]Notepad++ でコードを実行するには、メニューより「実行 > ファイル名を指定して実行」を選択。(ショートカットキーでは F5)

「実行...」ダイアログに以下のように入力して実行ボタンを押してコンパイル。

scalac "$(FULL_CURRENT_PATH)"

( Notepad++ で用意されている特別な引数については、Help > Commands を参照。)

コンパイルされたクラスファイルを実行するには、もう一度「実行...」ダイアログを表示させ、

scala 起動クラス名 && pause

を実行して結果を確認する。

 

3. NppExec プラグインでコンパイルと実行

上記の方法ではコンパイルと実行をそれぞれ行う必要があるので面倒。そこで、NppExec プラグインを利用して複数のコマンドを実行できるようにする。

 

インストール
  1. メニューより「プラグイン > Plugin Manager > Show Plugin Manager」を選択。
  2. NppExec を選択してインストール。

Notepad++ を再起動すると、メニューの「プラグイン」に `NppExec’ が表示される。

 

コンパイルと実行を一度に行わせる方法

Scala のコードをコンパイルしてエラーがなかった場合に、続けて実行するためのバッチファイルを用意。 NppExec プラグインより呼び出すようにする。

Notepad++.exe と同じ階層に以下のバッチファイル scalaCompileAndRun.bat  を作成。

call fsc "%1"
if ERRORLEVEL 1 exit
call scala "%2"

Notepad++ のメニューより「プラグイン > NppExec > Execute…」を選択。(ショートカットキーは F6)

ダイアログに以下を入力。

INPUTBOX "起動するクラスを指定してください" : $(SYS.MAINCLASS)
ENV_SET  MAINCLASS = $(INPUT)
NPP_SAVE
cmd /c "$(NPP_DIRECTORY)\scalaCompileAndRun.bat"  $(FULL_CURRENT_PATH)  $(SYS.MAINCLASS)

Save… ボタンを押して適当な名前で保存する。

上記を利用するには、

  1. 実行したいコードを入力
  2. F6 キーを押し NppExec のExecute… ダイアログを表示
  3. 先ほど保存したスクリプトをセレクトボックスで選択してOK ボタンを押す

起動するクラスを指定するダイアログが表示されるので入力して OK ボタンを押すと、コンパイルして実行される。

5283697369_e77c92178d_z

一度実行したら、Ctrl + F6 により再実行できる。

 

NppExec のドキュメント

ところで、NppExec のドキュメントは以下の場所にある。

  • npp.5.8.5-6.1.bin\unicode\plugins\doc\NppExec

参考にしたヘルプは、

  • Help > 3.7 NppExec's script
  • Help > 4.2 Environment
上記スクリプトに対応したメニューとショートカットを作成したい場合は以下を参考に。

 

関連記事

参考サイト

NppExec プラグイン

バッチ処理