4

Emacs の使い方を少し前から学んでいます。これまでのところ、とても気に入っています。

私の問題は、小さな C コードの場合、Make ではなく Rake を使用することを好むことです。ただし、flymake は Make 以外は何も望んでいないようです。Makefileが見つからないと不平を言うので。コマンド ラインから Rake は Make と同じように使用されるので、flymake で Rake を使用できるようにするために入力できる emacs 構成があるかどうか疑問に思っていましたか?

私がやっていることを少し修正するために。私は実際に Rakefile を編集しているわけではありません。そして、flymake-ruby はまったく役に立ちません。私はCコードを扱っています。RAKE を使用して、MAKE の代わりに gcc を使用して C コードをコンパイルします。

4

3 に答える 3

2

わかりました。以前の混乱について申し訳ありません。

*.c ファイルの flymake.el をざっと見てみると、'make' の呼び出しは最終的に次の場所から行われます。

(defun flymake-get-make-cmdline (source base-dir)
  (list "make"
    (list "-s"
          "-C"
          base-dir
          (concat "CHK_SOURCES=" source)
          "SYNTAX_CHECK_MODE=1"
          "check-syntax")))

それはによって呼び出されます。これは、ファイルがによってマップされてflymake-simple-make-initいるため呼び出されます。*.cflymake-allowed-file-name-masks

したがって、正しい答えは、ファイルを別の init defunflymake-allowed-file-name-masksにマップするように変更し*.c、その defun を記述して、希望する方法で rake を呼び出すことです。さまざまなことのために書かれたこれらの defun はすでにたくさんあり、それらのほとんどはかなり短くて甘いものです。(本当に正しい答えはflymake-simple-make-init、コマンド名が defcustom 変数から読み取られるように変更し、その変更を上流に送信することです...)

あなたがする必要があるのは「make」と同じ引数で「rake」を呼び出すことだけだとあなたが言ったことを考えると、flymake.elのコピーを取得し、それを早い段階であなたのload-path.flymake-get-make-cmdline代わりに「rake」を読み取る「make」文字列。そうすれば、少なくとも次のステップに進むことができます...

于 2008-12-31T01:41:37.503 に答える
0

チャーリーが言ったことを続けると、EmacsWiki のFlymakeRuby ノードには、 rakefileで有効にするためのビットを含め、必要なコードが正確に含まれています。

于 2008-12-30T18:52:22.977 に答える
0

Rake は Ruby の構文なので、ファイルで rby の flymake をオンにするだけで実行できます。 このリンクは、これを行うための誰かの elisp コードです。EmacsWikiにも多くの情報があります。(実際、EmacsWiki 全般を読む必要があります。そこには多くの便利な情報があります。)

于 2008-12-27T19:17:43.020 に答える