flymake-mode を使うと、ソース保存時にコンパイルエラーとなる箇所を検
出してくれるらしい。とりあえず試してみた。
設定方法
- Makefile に check-syntax という名前のルールを追加する。$(CC) と
$(CFLAGS) は各自でセットしてくれ。
check-syntax:
$(CC) $(CFLAGS) -fsyntax-only $(CHK_SOURCES)
- ソースファイルを開き、M-x flymake-mode する。コンパイルエラーに
なるような修正をして保存。→エラー箇所の背景色がピンクになった。
解説
flymake.el の flymake-get-make-cmdline() によると、例えば hoge.c の
場合、保存時に裏で以下のコマンドが実行されるらしい。そのため、(1)
で check-syntax ルールを追加したというわけ。
|make -s -C . CHK_SOURCES=hoge.c SYNTAX_CHECK_MODE=1 check-syntax
おまけ
C や C++ ソースを開いたときに、自動的に flymake-mode を有効にする設
定は以下のとおり。
(add-hook 'c-mode-common-hook (lambda () (flymake-mode t)))