edebugにマクロ引数の評価のみを教えるにはどうすればよいですか?

Currently, edebug doesn't understand the ->> macro in dash.el.

(defun foo ()
  (->> (+ 1 1)
       (+ 2)
       (* 3)
       (format "%s")))

C-u M-x edebug-eval-defun followed by M-: (foo) does not step through the forms inside ->>. It just shows the value of the whole (->> ...) expression.

Looking at the docs for declare, I don't think I can teach edebug about all the arguments to ->>. However, the first argument is a form, so I would like to edebug to step through that. I tried this:

(defmacro ->> (x &optional form &rest more)
  "Thread the expr through the forms. ..."
  (declare (debug (form &rest 0)))
   ...)

しかし、これは私に "edebug-match-specs:あまりにも深い - 恐らく無限ループの仕様?"後で foo edebug-eval-defun を呼び出そうとします。

最初の引数がフォームであるが、edebugが残りの部分をスキップするようにマクロに注釈を付けることはできますか?

1
@nostavsは完璧です。あなたは答えとしてあなたのコメントを提出しますか?
追加された 著者 McDowell,
Emacs 25の新しい thread-first マクロを使用してください。
追加された 著者 alastairs,
あなたはそれを自己回答にすることをお勧めします。私はそれがどのように機能するのか分かりません。関連する例を思い出しました。
追加された 著者 alastairs,

答えはありません

0