ant+flex4 エラーメッセージ

ant+flex4+air2+meadow+fcsh環境でActionScript関連のコンパイルをした際のエラーメッセージの取り扱いについてのメモ。(依然書いた記事GoFcshDaemonに基づいて、Win7x64環境で再構築。記事fcshラッパー再構築の続き)

(home)/.antrc

ant のメッセージについているバナー([exec], [javac]など)を削除して、emacs風のエラーメッセージで出力するには、.antrc に次のスクリプトを書く。出典ant faq

# Detect (X)Emacs compile mode
#if [ "$EMACS" = "t" ] ; then
  ANT_ARGS="$ANT_ARGS -emacs"
  ANT_OPTS="$ANT_OPTS -Dbuild.compiler.emacs=true"
#fi

if文は、以前は支障がなかったのですが、この度は不適切となりました。meadow外からの起動時でもバナー無しということになりますが、特に支障がないので、if文は無効にしました。支障が現れた理由は不明です。このif文の意味は、emacsからの起動時にtrueとなることでしょうか? ですが、この度は、$EMACS="MEADOW"になっていました。環境変数としてEMACS="MEADOW"と設定しているので、そのせいでしょうか?以前はどうだったか覚えていません。

(flexsdk)/bin/jvm.config

flex、fcshなどのコンパイルメッセージのロケールを変更をするための設定です。

# Arguments to VM
#java.args=-Xmx384m -Dsun.io.useCanonCaches=false -Duser.language=en -Duser.region=US
#java.args=-Xmx384m -Dsun.io.useCanonCaches=false -Duser.language=ja -Duser.region=JP
java.args=-Xmx384m -Dsun.io.useCanonCaches=false

上から順に、英語、日本語、システム既定です。現OSの環境は日本語なので、日本語メッセージとなります。

(home)/.emacs

メッセージを解釈して、強調表示+ジャンプを行えるようにします。

(add-to-list 'compilation-error-regexp-alist-alist
 	     '(flex4 "^\\(\\(?:[A-Z]:\\)?[^:(\t\n]+\\)\\(?:(\\([0-9]+\\))\\)?: +\
\\(?:エラー\\|警告\\|Error\\|Warning\\):" 1 2))
(add-to-list 'compilation-error-regexp-alist 'flex4)

日本語の場合「警告」となるのかどうかは解らないけど、今度見つけたら訂正しようと思います。少なくとも、エラーとErrorに関しては正しく反応しているようです。