(add-hook 'change-major-mode-hook
(lambda () (outline-minor-mode -1))
nil t)
+ (add-hook 'revert-buffer-restore-functions
+ #'outline-revert-buffer-restore-visibility nil t)
(add-hook 'revert-buffer-restore-functions
(lambda ()
(when (and outline-minor-mode outline-minor-mode-highlight
(concat "\\`" (regexp-quote heading) "\\'"))
(nreverse headings) "\\|"))))
+(defun outline-revert-buffer-restore-visibility ()
+ "Preserve visibility of outlines in `outline-minor-mode' for `revert-buffer'."
+ (let ((regexp (outline-hidden-headings-regexp)))
+ (when regexp
+ (lambda ()
+ (outline-hide-by-heading-regexp regexp)))))
+
\f
;;; Visibility cycling