edebug 提示错误的行很奇怪

(defun consult--grep (prompt builder dir initial)
  "Run grep in DIR.

BUILDER is the command builder.
PROMPT is the prompt string.
INITIAL is inital input."
  (let* ((prompt-dir (consult--directory-prompt prompt dir))
         (default-directory (cdr prompt-dir)))
    (consult--read
     (consult--async-command builder
       (consult--grep-format builder)
       :file-handler t) ;; allow tramp
     :prompt (car prompt-dir)
     :lookup #'consult--lookup-member
     :state (consult--grep-state)
     :initial (consult--async-split-initial initial)
     :add-history (consult--async-split-thingatpt 'symbol)
     :require-match t
     :category 'consult-grep
     :group #'consult--grep-group
     :history '(:input consult--grep-history)
     :sort nil)))

执行到倒数第三行 :group #'consult--grep-group, 之后显示 consult–grep-group, 这很正常, 但再按一次 s, 就报错 wrong argument, overlayp, nil. 这个错误不能是由 :group, :history 导致的, 它们被 quote , 没有执行什么. 所以说是 consult–async-command 导致的么? 但我在 consult–async-command处用 eval-fun 打断点, 根本没停下来.

1 个赞