ヽ(´・肉・`)ノログ

How do we fighting without fighting?

projectile-test-projectでpromptを表示させない

projectile-test-project でプロンプトを表示させずに直接テストを行うためには compilation-read-commandnil に設定する.

設定例

試したこと

プロジェクトに関する処理を行う Projectile という Emacs 拡張がある.

などということが統一されたインターフェースで行える.IntelliJ などの IDE には最初から備わっている便利機能だ.

その中の一つ,プロジェクト内のテストを実行するときは projectile-test-project という elisp 関数を呼び出す. ただこの関数で私が一つ不満な点がある,これは呼び出しのたびに「この(デフォルト)コマンドを実行するか」と尋ねてくるので,毎回変更せずにリターンキーを押さなければいけない. コードをこまめにテストするにあたり,コマンド固定でかまわないから1つの操作でテスト実行をしたかった.

Emacs で (describe-function 'projectile-test-project) を実行すると,このプロンプトを抑制する方法がドキュメントに書いてあった.

Normally you’ll be prompted for a compilation command, unless variable ‘compilation-read-command’. You can force the prompt with a prefix ARG.

compilation-read-command ではない限り.通常はコンパイルコマンドの入力を求められる」

ここの unless の解釈が難しいが

(describe-variable 'compilation-read-command)

Non-nil means M-x compile reads the compilation command to use. Otherwise, M-x compile just uses the value of ‘compile-command’.

とあるので「 nil なら入力を求めない」ということなのだろう.

(custom-set-variables
 '(compilation-read-command nil))

を init.el に追記して試したところ,確かにプロンプトは出なくなった.

まとめ

projectile-test-project でプロンプトを表示させずに直接テストを行うためには compilation-read-commandnil に設定する.

なので間違えないようにすること.私は tnil を読み違えていて約 1 日溶かした.

このエントリーをはてなブックマークに追加