Nếu bạn thích cách hoạt động của chế độ nạp lại (tôi không: p) nhưng không phải khi nó hoạt động, việc khắc phục tương đối dễ dàng bằng cách ức chế nó bất cứ khi nào bạn không ở trong điều kiện thích hợp
Ví dụ
(defvar plop/refill-enabler-function nil)
(defun plop/region-in-comment (beg end)
;; should really be comment-only-p, but that seems really broken for me
(not
(loop for c from beg to end
if (not (eq 'font-lock-comment-face (get-char-property c 'face)))
return t)))
(defun plop/refill-after-change-function (beg end len)
(unless undo-in-progress
(when (and plop/refill-enabler-function
(funcall plop/refill-enabler-function beg end))
(setq refill-doit end))))
(defun plop/install-refill-hack ()
(if refill-mode
(progn
(add-hook 'after-change-functions 'plop/refill-after-change-function nil t)
(remove-hook 'after-change-functions 'refill-after-change-function t))
(progn
(remove-hook 'after-change-functions 'plop/refill-after-change-function t))))
(defun plop/refill-hook ()
(set (make-local-variable 'plop/refill-enabler-function)
#'plop/region-in-comment)
(add-hook 'refill-mode-hook 'plop/install-refill-hack t t)
(refill-mode))
(add-hook 'some-hook 'plop/refill-hook)
Về cơ bản, nó loại bỏ chức năng kích hoạt nạp tiền after-change-functions
và thay thế nó bằng chức năng bổ sung để kiểm tra xem chúng tôi đang ở trong một nhận xét trước khi thực hiện chính xác điều tương tự.