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