* 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.
This commit is contained in:
Juri Linkov 2024-06-27 20:05:58 +03:00
parent 339310d020
commit 280c91782a

View file

@ -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)