我的evil-commentary作者,完整的源不到200線可以在回購找到。無限循環當字節編譯
基本上,我有這樣的事情。
(evil-define-operator evil-commentary (beg end type)
"Comment or uncomment region that {motion} moves over."
:move-point nil
(interactive "<R>")
(let ((comment-function
(cdr (assoc major-mode
evil-commentary-comment-function-for-mode-alist))))
(if comment-function (funcall comment-function beg end)
(comment-or-uncomment-region beg end))))
(defun evil-commentary-comment-for-org (beg end)
"Comment function for `org-mode'."
(interactive "r")
(if (and (fboundp 'org-in-src-block-p)
(org-in-src-block-p))
(evil-commentary-do-in-org-src-block beg end
(call-interactively 'evil-commentary))
(comment-or-uncomment-region beg end)))
的想法是,evil-commentary
將調用evil-commentary-comment-for-org
在組織文件,如果我們在一個src塊,evil-commentary-comment-for-org
將在src-edit
緩衝區再次調用evil-commentary
(現在有不同的major-mode
)
安裝工作得很好,但是當我編譯代碼時,我得到一個無限循環evil-commentary
- >evil-commentary-comment-for-org
- >evil-commentary
...與Variable binding depth exceeds max-specpdl-size
錯誤...
我發現,它會如果我在加載org
之後編譯代碼,則工作,但不是我想要的,因爲evil-commentary
將在用戶編譯舊版本org
後停止工作,然後升級它。 (中package.el
中的一個缺陷)
謝謝!
在看到Angus的回答之前,我認爲你在字節編譯期間看到了一個inf-loop。試着更準確地描述你看到的症狀。 – Stefan