bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#19267: 25.0.50; Enhance cycle-spacing with a state where only whites


From: Tassilo Horn
Subject: bug#19267: 25.0.50; Enhance cycle-spacing with a state where only whitespace after point is deleted
Date: Fri, 13 May 2022 21:01:07 +0200
User-agent: mu4e 1.7.20; emacs 29.0.50

Lars Ingebrigtsen <larsi@gnus.org> writes:

>> Ok, attached is a first version of the patch for discussion.  The
>> supported actions are:
>>
>> (setq cycle-spacing-actions
>>       '( just-one-space        ; you name it
>>          ;; delete-space-after ; delete spaces after point
>>          delete-space-before   ; delete spaces before point
>>          delete-all-space      ; delete all spaces around point
>>          restore))             ; restore the original spacing
>>
>> In addition, you can add functions (symbols) into that list which are
>> simply funcall-ed.
>
> Sounds good.  There should also be a just-one-space-including-newlines
> (which is the `M-- M-SPC' action), and...  Uhm, perhaps that's all
> that's missing, if we want to cover all the `M-SPC'/`M-\' actions.
>
> Or perhaps newline-including versions of all the functions, really.

I'll make it so that the prefix arg is passed on in the cycle so M--
M-SPC M-SPC will delete all space including newline before point.  IMO,
that's better than a separate action.

>>    However, with the new version, I think it would make more sense
>>    when the prefix arg given to the initial invocation is passed on
>>    to following invocations of this cycle.  The reason is that only
>>    just-one-space actually cares about the exact numerical value
>>    whereas all actions (except 'restore) care about the prefix arg
>>    being positive or negative.
>
> delete-space-before/after could also care about the numerical prefix?

Yes, in the sense that negative means "including newlines".

>>    A negative arg always indicates that newlines are treated as a
>>    deletable space whereas arg => 0 only considers tabs and spaces.
>>    So right now, if you want to delete all space including newlines,
>>    you have to type M-- M-SPC M-- M-SPC M-- M-SPC which is
>>    inconvenient.  If the initial arg was passed on, it would just be
>>    M-- M-SPC M-SPC M-SPC which is much easier to type.
>
> After typing `M-- M-SPC' once, further incantations of that doesn't do
> anything, does it?

Right now and with my patch, M-- M-SPC would call (just-one-space -1)
and the next M-SPC would start another cycle with (just-one-space 1)
because the prefix arg changed.

My suggestion is that M-- M-SPC M-SPC will call (just-one-space -1)
(delete-space-before -1) [ok, the latter is no function but you get the
idea].

Bye,
Tassilo





reply via email to

[Prev in Thread] Current Thread [Next in Thread]