branch: elpa/highlight-parentheses commit cccdfe08635bfbe0cd7a79ec86ddb5a48a1b4b2d Author: Constantin Kulikov <zxnotd...@gmail.com> Commit: Constantin Kulikov <zxnotd...@gmail.com>
Delete overlays in before-revert-hook and change-major-mode-hook --- highlight-parentheses.el | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/highlight-parentheses.el b/highlight-parentheses.el index 1f40161..f7715e2 100644 --- a/highlight-parentheses.el +++ b/highlight-parentheses.el @@ -83,6 +83,9 @@ This is used to prevent analyzing the same context over and over.") "A timer initiating the movement of the `hl-paren-overlays'.") (make-variable-buffer-local 'hl-paren-timer) +(defun* hl-paren-delete-overlays (&optional (overlays hl-paren-overlays)) + (mapc #'delete-overlay overlays)) + (defun hl-paren-highlight () "Highlight the parentheses around point." (unless (= (point) hl-paren-last-point) @@ -99,7 +102,7 @@ This is used to prevent analyzing the same context over and over.") (move-overlay (pop overlays) (1- pos2) pos2))) (error nil)) (goto-char pos)) - (mapc #'delete-overlay overlays)))) + (hl-paren-delete-overlays overlays)))) (defcustom hl-paren-delay 0.137 "Fraction of seconds after which the `hl-paren-overlays' are adjusted. @@ -120,17 +123,21 @@ overlays when scrolling or moving point by pressing and holding (define-minor-mode highlight-parentheses-mode "Minor mode to highlight the surrounding parentheses." nil " hl-p" nil - (mapc 'delete-overlay hl-paren-overlays) + (hl-paren-delete-overlays) (kill-local-variable 'hl-paren-overlays) (kill-local-variable 'hl-paren-last-point) (remove-hook 'post-command-hook 'hl-paren-initiate-highlight t) + (remove-hook 'before-revert-hook 'hl-paren-delete-overlays) + (remove-hook 'change-major-mode-hook 'hl-paren-delete-overlays) (when (and highlight-parentheses-mode ;; Don't enable in *Messages* buffer. ;; https://github.com/tsdh/highlight-parentheses.el/issues/14 (not (eq major-mode 'messages-buffer-mode)) (not (string= (buffer-name) "*Messages*"))) (hl-paren-create-overlays) - (add-hook 'post-command-hook 'hl-paren-initiate-highlight nil t))) + (add-hook 'post-command-hook 'hl-paren-initiate-highlight nil t) + (add-hook 'before-revert-hook 'hl-paren-delete-overlays) + (add-hook 'change-major-mode-hook 'hl-paren-delete-overlays))) ;;;###autoload (define-globalized-minor-mode global-highlight-parentheses-mode @@ -160,7 +167,7 @@ overlays when scrolling or moving point by pressing and holding (dolist (buffer (buffer-list)) (with-current-buffer buffer (when hl-paren-overlays - (mapc 'delete-overlay hl-paren-overlays) + (hl-paren-delete-overlays) (setq hl-paren-overlays nil) (hl-paren-create-overlays) (let ((hl-paren-last-point -1)) ;; force update