flymake
どこに配置すればよいのか、またはmakefileを正確に作成する方法がわからないため、私はちょっと迷っています。それについての emacswiki の記事を見ましたが、(おそらく見落としていたのかもしれませんが) ファイルをどこに置くか、またはその場所を指定する方法がわかりませんでした。
1 に答える
Makefile の正確な場所は重要ではありません。
Flymake は、チェック対象のファイルを含むディレクトリとその上位ディレクトリで Makefile を検索します。を編集するfoo/bar/test.c
と、Flymake は最初foo/bar/Makefile
に 、次にfoo/Makefile
、というように、ルート ディレクトリに到達するまで試行します。
ただし、Makefile は Flymake に特別なサポートを提供する必要があります。check-syntax
ターゲットを提供し、CHK_SOURCES
チェック対象のファイルを参照する必要があります。このようなターゲットの作成方法は、使用している言語とコンパイラによって異なります。Makefile がこのターゲットを提供しない場合、構文チェックは失敗します。
.c
Flymake は、一般的な拡張子 ( 、.cpp
など)を持つ C および C++ ファイルの Makefile を使用します。Flymake はモードではなく、バッファのファイル名を見ることに注意してください。そのため、バッファにはバッキング ファイルが必要であり、Flymake に認識される拡張子が必要です。ファイルに通常とは異なる拡張子が付いている場合は、それに応じてカスタマイズして、ファイル名に一致する正規表現を追加します。たとえば、次のようになります。flymake-allowed-file-name-masks
(require 'flymake)
(add-to-list 'flymake-allowed-file-name-masks
'("\\.an-exotic-c-extension\\'" flymake-simple-make-init))
Makefile をセットアップし、それに応じて Flymake をカスタマイズするとM-x flymake-mode
、構文チェックを有効にするのに十分なはずです。
コメントで推奨されている Flycheck も参照してください。Flycheck は構文チェックの代替実装であり、多くの言語でそのまま使用できます。Makefile はサポートしていませんが、多くの言語をサポートしています。使用している言語がサポートされている場合、変更は Makefile さえ必要ないという点で優れています。
免責事項: 私は Flycheck の作成者であり、メンテナーです。