Java のコード片を実行します。
ちょっとしたコードの実行結果を知りたい場合に便利です。 名前からもわかるとおり Eclipse にある ScrapBook のぱくりです。
NetInstaller でインストールした場合は 3 以降を、
NetInstaller + ni-autoload
を使っている人は 4 以降で OK です。
アーカイブをダウンロードします。
<URL:http://miyamuko.s56.xrea.com/xyzzy/archives/java-scrapbook.zip>
~/.xyzzy または $XYZZY/site-lisp/siteinit.l に以下のコードを追加します。
;; java-scrapbook (require "java-scrapbook")
設定を反映させるため xyzzy を再起動してください。
※siteinit.l に記述した場合には再ダンプが必要です。
実行したいコード片をリージョンで指定して M-x java-scrapbook-region 、 または M-x java-scrapbook-oneliner 、 M-x java-scrapbook-display でミニバッファから一行入力して実行します。
例: システムプロパティを表示する例 (java-scrapbook-oneliner で入力)。
System.getProperties().list(System.out);
java-scrapbook-current-kill
java-scrapbook-clipboard
java-scrapbook-buffer
java-scrapbook-region
java-scrapbook-oneliner
java-scrapbook-display
ミニバッファから Java の式を一行入力してその評価結果を表示します。
入力した値はそのまま System.out.println の引数に渡します。 よって入力するのは Java の式である必要があります。 (= セミコロンはいらない)
*java-scrapbook-template*
生成するソースファイルのテンプレートを指定します。
テンプレートは以下の引数を与えられ format されます。
import 宣言のリスト
*java-scrapbook-import-list* で指定したリストです。
*java-scrapbook-import-list*
import 宣言のリストです。
デフォルトは Java 1.4 の java. で始まり AWT と Applet 以外のパッケージです。
Java 1.2 or 1.3 を利用している人は以下のようにしてください。
(setf *java-scrapbook-import-list* *java-scrapbook-java1.3-import-list*)
新しく追加する場合は以下のようにしてください。
(pushnew "javax.accessibility.*" *java-scrapbook-import-list* :test #'equal) (pushnew "javax.crypto.*" *java-scrapbook-import-list* :test #'equal)
*java-scrapbook-java1.3-import-list*
*java-scrapbook-java1.4-import-list*
*java-scrapbook-substitute-alist*
生成する Java コードの置換リストです。
デフォルトでは sout と serr がそれぞれ System.out.println と System.err.println に置換されるように なっています。
新しく追加する場合は以下のようにしてください。
(pushnew '("regexp" . "replacement") *java-scrapbook-substitute-alist*)
例:
(pushnew '("ae" . "assertEquals") *java-scrapbook-substitute-alist*)
*java-scrapbook-keep-file-p*
生成した Java ファイルを保存・削除を決定するフラグです。
生成したファイルを削除しないなら以下のように non-nil を指定してください。
(setq *java-scrapbook-keep-file-p* t)
生成先は環境変数 %Temp% 配下(たぶん)の Scrap_〜.book というディレクトリです。
デフォルトは nil (削除する)です。
*java-scrapbook-source-buffer-name*
*java-scrapbook-javac-buffer-name*
*java-scrapbook-java-buffer-name*
それぞれ生成したソースコード、コンパイル結果、実行結果を 書き込むバッファ名です。
デフォルトはすべて同じで *Java Scrap* です。
*java-scrapbook-java-command*
*java-scrapbook-javac-command*
Java の実行コマンドとコンパイルコマンドを指定します。
文字列以外を指定すると適当に文字列に変換します。 関数を指定した場合 funcall するので動的に値を変更できます。
*java-scrapbook-before-java-hook*
*java-scrapbook-before-javac-hook*
なんとなく用意したフックです。 プリプロセッサに通したいとか ajc したいとかに使えるかも。
それぞれ java コマンドの前と javac コマンドの前に
run-hook-with-args-while-success
で実行します。
フックが nil を返すとその時点ですべての実行を中断します。
フックの引数は次のとおりです。
*java-scrapbook-search-eclipse-classpath-p*
Eclipse の .classpath ファイルを読み込むかどうかを指定します。 nil を指定した場合、読み込みません。
.classpath の検索はカレントディレクトリから上位に探します。
*java-scrapbook-classpath*
クラスパスを指定します。 デフォルト値は環境変数 CLASSPATH の値です。
*java-scrapbook-search-eclipse-classpath-p* に non-nil を指定した場合 Eclipse の .classpath ファイルを読み込んでクラスパスの 先頭に追加します。
*java-scrapbook-erase-output-buffer*
java-scrapbook は修正 BSD ライセンスに基づいて利用可能です。
Copyright (C) 2003-2004 MIYAMUKO Katsuyuki. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1 Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer as the first lines of this file unmodified. 2 Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.