ant,fcsh のエラーメッセージの変更方法

ant が吐き出すコンパイルメッセージは、 meadow の標準のメッセージ解析では次の2点でギブアップしているらしい。

  1. 日本語をはき出す。(Error,Warning=>エラー、警告 など)
  2. メッセージの頭に [exec] などと付く。

そのために、antのエラーメッセージを変更することにした。

日本語を吐かせないためには

flexsdk/bin/jvm.conf に次の様に記述する。

java.args=-Xmx384m -Dsun.io.useCanonCaches=false -Duser.language=en -Duser.region=US
余計な接頭辞([exec]など)を削るには

ホームディレクトリに次の内容の .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
それでも、meadowが反応しないので

ホームディレクトリの .emacs に次の内容を記述。

;;
;; ActionScript compilation mode
;;
(require 'compile)
(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)

結局、.emacs で対応した事になってしまった。まぁいいか。

(追記 2009/10/12)本日、エラーメッセージがいきなり変わった。これまでは、「ファイルパス(行番号)+Error:+エラー内容」だったのに、「ファイルパス(行番号)+col:+桁+Error:+エラー内容」になっている。

D:\home\eggtoothcroc\project\pipedFcsh\Sample.mxml(10): col: 34 Error: The prefix "gx" for element "gx:Script" is not bound.

なぜかは、不明。対処は、.emacs を次のように修正。

;;
;; ActionScript compilation mode
;;
(require 'compile)
(add-to-list 'compilation-error-regexp-alist-alist
 	     '(flex4 "^\\(\\(?:[a-zA-Z]:\\)?[^:(\t\n]+\\)\\(?:(\\([0-9]+\\))\\)?: +\
\\(?:col: +\\([0-9]+\\) +\\)?\\(?:Error\\|Warning\\):" 1 2 3)
 	     '(flex4 "^\\(\\(?:[A-Z]:\\)?[^:(\t\n]+\\)\\(?:(\\([0-9]+\\))\\)?: +\
\\(?:Error\\|Warning\\):" 1 2))
(add-to-list 'compilation-error-regexp-alist 'flex4)

「col: 桁」に対応した。