Function: hi-lock-revert-buffer-rehighlight

hi-lock-revert-buffer-rehighlight is a byte-compiled function defined in hi-lock.el.gz.

Signature

(hi-lock-revert-buffer-rehighlight)

Documentation

Rehighlight hi-lock patterns after revert-buffer.

Apply the previous patterns after reverting the buffer.

Source Code

;; Defined in /usr/src/emacs/lisp/hi-lock.el.gz
(defun hi-lock-revert-buffer-rehighlight ()
  "Rehighlight hi-lock patterns after `revert-buffer'.
Apply the previous patterns after reverting the buffer."
  (when (or hi-lock-interactive-lighters hi-lock-file-patterns)
    (let ((patterns hi-lock-interactive-lighters)
          (policy (if hi-lock-file-patterns 'always 'never))
          rehighlight)
      (lambda ()
        ;; When using revert-buffer without preserve-modes
        (unless hi-lock-mode
          ;; Don't ask about file patterns again
          (let ((hi-lock-file-patterns-policy policy))
            (hi-lock-mode 1))
          (setq rehighlight t))
        ;; 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 (or (get-text-property 0 'regexp (car pattern))
                                    (car pattern))
                                face)
              (setq hi-lock--unused-faces
                    (remove (face-name face) hi-lock--unused-faces)))))))))