Subject: bug#57082: 29.0.50; emacs-news-view-mode breakage

From: Juri Linkov <[email-masked]>
Date: Tue, 09 Aug 2022 22:18:21 +0300

>> The attached patch appears to fix the problems described above, but the
>> only buffer using outline-minor-mode beside NEWS that I've tested it on
>> is *Help* showing the output of describe-bindings, and the seems to work
>> as expected with the patch (and due to the patch is not flagged as
>> modified, though that isn't important for *Help*.)
>
> Thanks; patch applied to Emacs 29.

I noticed more problems: arrow directions are inverted - when an outline
is hidden the arrow direction is open; when it's shown then the button has
the closed state.

S-TAB (outline-cycle-buffer) is very slow: takes ~3 seconds on a small
NEWS buffer.

Also don't understand why is this change:

         (when outline-minor-mode-highlight
-          (if (and global-font-lock-mode (font-lock-specified-p major-mode))
-              (progn
-                (font-lock-add-keywords nil outline-font-lock-keywords t)
-                (font-lock-flush))
-            (outline-minor-mode-highlight-buffer)))
+          (when (and global-font-lock-mode (font-lock-specified-p major-mode))
+            (font-lock-add-keywords nil outline-font-lock-keywords t)
+            (font-lock-flush))
+          (outline-minor-mode-highlight-buffer))

`outline-minor-mode-highlight-buffer' is intended only for buffers
that don't support font-lock highlighting.

> The outline button stuff is still a work in progress, as you've found
> out.  I'm not quite sure whether it should be switched on by default in
> NEWS buffers -- it doesn't seem to bring much value there.  (As opposed
> to in `describe-bindings', where it seems very helpful (since we're
> starting out with some parts already folded.)

It would be nicer if the color of the button depended on the outline's color,
e.g. blue for the top-level blue outline face, etc.

> So I'm pondering whether to add an additional mechanism to say whether a
> mode is "opting in" to the buttons or not, but I'm not sure what that
> should look like.

Since outline-minor-mode-use-buttons uses buffer-match-p, it can have
any condition, including a condition to exclude etc/NEWS, for example.