Subject: Re: bug#41198: 28.0.50; heading cycling command for outline

From: "Paul W. Rankin" <[email-masked]>
Date: Sat, 28 Nov 2020 11:58:51 +1000

On 2020-11-27 18:29, Juri Linkov wrote:
> I tried to modify the format of `C-h b' to output '*' headings,
> but unfortunately after enabling `outline-minor-mode'
> TAB has no effect on such headings.
> 
> I wonder why heading cycling implemented in this bug report
> supports only `outline-mode', but not `outline-minor-mode'?
> 
> It would make sense in `outline-minor-mode' if TAB typed on a heading
> then cycle outline heading.  If TAB is typed outside of a heading,
> then use the default TAB binding, e.g. in case of the Help buffer
> navigate to the next link.

This is because it's not possible to know how the underlying major mode 
implements TAB.

For just one example, I maintain a major mode where TAB performs outline 
cycling when at a heading, but calls completion-at-point when at a 
heading but at eolp. The assumption of outline-on-heading-p is 
insufficient to allow outline-minor-mode to hijack TAB.

The correct way to implement what you're suggesting is for the major 
mode to require outline as a library, then alias the cycling commands 
prefixed as MODE-outline-cycle[-buffer] mapped them to TAB/S-TAB in 
their own keymaps.