マクロを含んだ関数のデバッグをするために、ステップ実行しようとする
と一瞬で終わってしまうことがあります。これについて、ツイッターでア
ドバイスをもらったので、調べてみました。

例えば以下のコードで、hoge() をステップ実行しようとすると
hoge-only の式に入れず、ミニバッファに Result: “ccc” と表示され
一瞬で終わってしまいます。

(defun hoge-p () t)

(defmacro hoge-only (&rest body)
  `(cond
    ((not (hoge-p))
     (message "This command can be used in hoge only"))
    (t ,@body)))

(defun hoge ()
  (hoge-only
   (message "aaa")
   (message "bbb")
   (message "ccc")))

対策は簡単で、以下の S 式を評価するだけです。

(def-edebug-spec hoge-only t)

どこかで見たことあるなあと思ったら、mew-edebug.el でこれが使われて
いました。なぜ気づかない。。。

元になったつぶやきです。ありがとうございます。