From: Juri Linkov Date: Thu, 27 Jun 2024 17:05:58 +0000 (+0300) Subject: * lisp/hi-lock.el (hi-lock-revert-buffer-rehighlight): Improve (bug#57534). X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=b6b8f8cc4846d578b1513b55c24b48bac6789762;p=emacs.git * lisp/hi-lock.el (hi-lock-revert-buffer-rehighlight): Improve (bug#57534). Instead of detecting invalidated overlays, use the same condition as in 'hi-lock-set-pattern', and always re-highlight overlays, because even when overlays stays on their original positions, there is a need to highlight more matches possibly added after revert. (cherry picked from commit 280c91782afa0c6ae667785b806da58e6be102ae) --- diff --git a/lisp/hi-lock.el b/lisp/hi-lock.el index 648a3316323..e1fa992cb12 100644 --- a/lisp/hi-lock.el +++ b/lisp/hi-lock.el @@ -879,12 +879,13 @@ Apply the previous patterns after reverting the buffer." (let ((hi-lock-file-patterns-policy policy)) (hi-lock-mode 1)) (setq rehighlight t)) - ;; When hi-lock overlays were relocated to the top - (when (seq-some (lambda (o) (overlay-get o 'hi-lock-overlay)) - (overlays-in (point-min) (point-min))) + ;; When using hi-lock overlays, then need to update them + (unless (and font-lock-mode (font-lock-specified-p major-mode) + (not hi-lock-use-overlays)) (hi-lock-unface-buffer t) (setq rehighlight t)) (when rehighlight + (setq hi-lock--unused-faces hi-lock-face-defaults) (dolist (pattern (reverse patterns)) (let ((face (hi-lock-keyword->face (cdr pattern)))) (highlight-regexp (car pattern) face)