Subject: Re: bug#50679: 28.0.50; outline-minor-mode-cycle should be able to only cycle at the begining of a line

From: Augusto Stoffel <[email-masked]>
Date: Mon, 27 Sep 2021 18:16:10 +0200

On Mon, 27 Sep 2021 at 18:35, Juri Linkov <[email-masked]> wrote:

>>>>> Then you can customize it to 'bolp'.
>>>>
>>>> I just tried it out, and it looks good. The only thing I wonder is if
>>>> this should apply to both outline-minor-mode and outline-mode?
>>>
>>> I separated maps outline-mode-map from outline-minor-mode-cycle-map,
>>> so it's applied only to outline-minor-mode-cycle-map.  It seems there is
>>> no need to use it in outline-mode.
>>
>> I just noticed this now, but I am not sure how clever it is to bind
>> outline-cycle-buffer via a menu-item. I don't think that there is as
>> much of a conflict with backtab, as with regular tab, and having to find
>> a heading before being able to cycling seems less efficient.

The way I solve this problem is by calling `outline-back-to-heading'
(which, strangely, is not an interactive command).  After that, I have
access to all “speed keys”.  This works almost like a transient keymap.

Actually, I have a DWIM command that calls `outline-up-heading' if
already at a heading and `outline-back-to-heading' otherwise.  I'm not
sure whether such a command would be deemed generally useful or just a
bit too weird.

> I'm using S-TAB (backtab) all the time, e.g. to move to the previous
> hunk in diff-mode, so menu-item is a saver.  After customizing
> the option that you proposed to the value "Not at the beginning of the line"
> now it's possible to use TAB to move the next diff hunk and S-TAB to
> move to the previous diff hunk while keeping point on the first column.
> And when point is on the second column then S-TAB hides all hunks,
> and TAB opens the current hunk with outline-minor-mode-cycle.