マスタカネット > マスタカの ChangeLog メモ > 2010-05-15

マスタカの ChangeLog メモ / 2010-05-15

2010-05 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

前の日 / 次の日

2010-05-15 (土)

elisp でマクロを含んだ関数のデバッグに便利な方法 [Emacs]

2010-05-15-1.html をつぶやくこのエントリを含むはてなブックマークlivedoor clip

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

例えば以下のコードで、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 でこれが使われて
いました。なぜ気づかない。。。

元になったつぶやきです。ありがとうございます。
http://twitter.com/masutaka/status/13920981205
http://twitter.com/cvmat/status/13952793940


前の日 / 次の日

2010-05 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

最終更新時間: 2010-09-05 06:00

フィードメーター - マスタカの ChangeLog メモ