From b6b8f8cc4846d578b1513b55c24b48bac6789762 Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Thu, 27 Jun 2024 20:05:58 +0300 Subject: [PATCH] * 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) --- lisp/hi-lock.el | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) 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) -- 2.39.2