Flymake導入

JavaのためにFlymakeを導入しました.

flymakeは、makeコマンドを呼び出して編集中のバッファのコンパイルエラーチェックを行います

(参考文献1より)
だそうです.

まず,参考文献2,3より,

  • flymakeを読み込む
  • check-syntax を読み込まない

ためのコードを.emacsに書き込みます(コピペ)
check-syntaxの件を書かないとエラー吐いた.理由は知らん.Makefileの内容が足らなかったからか?

;; ;; flymake
(require 'flymake)
;; redefine to remove "check-syntax" target
(defun flymake-get-make-cmdline (source base-dir)
  (list "make"
        (list "-s"
              "-C"
              base-dir
              (concat "CHK_SOURCES=" source)
               "SYNTAX_CHECK_MODE=1")))

;; (add-hook 'java-mode-hook
;;           '(lambda ()
;;              (flymake-mode)))))

一番下のコメントを外すとjava-mode になったとき自動的に flymake-mode になります.

参考文献2ではantを使ってコンパイルする方法も挙げていたのだけれど,後々makeの勉強がしたいのでantはまた次の機会にでも.

次に,Makefileという名前のファイルを作成.
参考文献4を見てに適当に作ってみた.

# JFLAGS = -g
JC = javac
.SUFFIXES: .java .class
.java.class:
	$(JC) $(JFLAGS) $*.java

CLASSES = \
	Hoge.java \
	Foojava \
	Bar.java

default: classes

classes: $(CLASSES:.java=.class)

clean: $(RM) *.class

中身は分かるところと分からんところがあるが,急いでいるので解釈は後で・・・

設定は以上.
Emacsで.javaを開いて

M-x flymake-mode RET

と打ってエラーが出なければ成功.

JDEEとFlymakeで,欲しかったEclipseの強力機能をEmacsに導入できました.
あとはリファクタリングできればなぁ.