unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#48472: [FR] A small suggestion for repeat-mode
@ 2021-05-16 20:05 Gustavo Barros
  2021-05-17 21:24 ` Juri Linkov
  0 siblings, 1 reply; 5+ messages in thread
From: Gustavo Barros @ 2021-05-16 20:05 UTC (permalink / raw)
  To: 48472

Hi All,

I've just taken notice of the recently introduced `repeat-mode', in 
`repeat.el', and welcome it.

I haven't yet tried it out, since I'm running on 27.2, but I understand 
what it does, and how.  I'll definitely use it when Emacs 28 comes, 
since I have some commands for which I use current `repeat.el' 
functionality to do something equivalent in my setup, and the new mode 
makes this much more convenient, so thank you (Juri) for adding it.

But I write to give one small suggestion to the mode.  Namely that an 
option be added to make the transient keymap expire after a 
(configurable) timeout.  The idea is that the repeating last key press 
is very handy indeed, but if you happen to stop at a repeatable key, 
stop some "idle" time (thinking, reading, whatever) and then hit the key 
again, it might not be what was actually meant.  In other words, besides 
`repeat-exit-key', some idle time after the last repeatable key may 
serve as a good indicator for breaking the repetition chain.

As far as I can see, this should not be particularly complicated, since 
`set-transient-map' returns an "exit function" which could be stored and 
ran on a timer, as appropriate.  And, of course, it can be optional.

Thanks again for the useful addition.  I'm looking forward to using it 
already.

Best regards,
Gustavo.





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#48472: [FR] A small suggestion for repeat-mode
  2021-05-16 20:05 bug#48472: [FR] A small suggestion for repeat-mode Gustavo Barros
@ 2021-05-17 21:24 ` Juri Linkov
  2021-05-18 11:14   ` Gustavo Barros
  0 siblings, 1 reply; 5+ messages in thread
From: Juri Linkov @ 2021-05-17 21:24 UTC (permalink / raw)
  To: Gustavo Barros; +Cc: 48472

> I've just taken notice of the recently introduced `repeat-mode', in
> `repeat.el', and welcome it.
>
> I haven't yet tried it out, since I'm running on 27.2, but I understand
> what it does, and how.  I'll definitely use it when Emacs 28 comes, since
> I have some commands for which I use current `repeat.el' functionality to
> do something equivalent in my setup, and the new mode makes this much more
> convenient, so thank you (Juri) for adding it.
>
> But I write to give one small suggestion to the mode.  Namely that an
> option be added to make the transient keymap expire after a (configurable)
> timeout.  The idea is that the repeating last key press is very handy
> indeed, but if you happen to stop at a repeatable key, stop some "idle"
> time (thinking, reading, whatever) and then hit the key again, it might not
> be what was actually meant.  In other words, besides `repeat-exit-key',
> some idle time after the last repeatable key may serve as a good indicator
> for breaking the repetition chain.

Thanks for the suggestion, this is a very good idea.

> As far as I can see, this should not be particularly complicated, since
> `set-transient-map' returns an "exit function" which could be stored and
> ran on a timer, as appropriate.

An "exit function" returned by `set-transient-map' is a clever thing,
without such returned function it would be more complicated to implement.
I quickly tried it out, and it works indeed.

> And, of course, it can be optional.

A new user option could be named `repeat-exit-timeout'.





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#48472: [FR] A small suggestion for repeat-mode
  2021-05-17 21:24 ` Juri Linkov
@ 2021-05-18 11:14   ` Gustavo Barros
  2021-05-18 21:04     ` Juri Linkov
  0 siblings, 1 reply; 5+ messages in thread
From: Gustavo Barros @ 2021-05-18 11:14 UTC (permalink / raw)
  To: Juri Linkov; +Cc: 48472

Hi Juri,

On Mon, 17 May 2021 at 18:24, Juri Linkov <juri@linkov.net> wrote:

>> But I write to give one small suggestion to the mode.  Namely that an
>> option be added to make the transient keymap expire after a 
>> (configurable)
>> timeout.  The idea is that the repeating last key press is very handy
>> indeed, but if you happen to stop at a repeatable key, stop some 
>> "idle"
>> time (thinking, reading, whatever) and then hit the key again, it 
>> might not
>> be what was actually meant.  In other words, besides 
>> `repeat-exit-key',
>> some idle time after the last repeatable key may serve as a good 
>> indicator
>> for breaking the repetition chain.
>
> Thanks for the suggestion, this is a very good idea.
>

I'm glad you liked it.  And thanks for answering.

>
> An "exit function" returned by `set-transient-map' is a clever thing,
> without such returned function it would be more complicated to 
> implement.
> I quickly tried it out, and it works indeed.
>

We have to thank whoever put it there.  And it seems to be there out of 
design and foresight.  As far as my grepping went (not that thorough), I 
didn't find an instance of usage of this return value in Emacs' code 
base as of yet.

>
> A new user option could be named `repeat-exit-timeout'.
> 

Sounds good to me.  And, I'm not sure I should be reading between the 
lines of your answer, but I could not avoid it, so I'll be forthcoming. 
I've gone as far as I'm allowed to.  I'd be happy to offer a patch, but 
no papers...

Best,
Gustavo.





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#48472: [FR] A small suggestion for repeat-mode
  2021-05-18 11:14   ` Gustavo Barros
@ 2021-05-18 21:04     ` Juri Linkov
  2021-05-18 22:09       ` Gustavo Barros
  0 siblings, 1 reply; 5+ messages in thread
From: Juri Linkov @ 2021-05-18 21:04 UTC (permalink / raw)
  To: Gustavo Barros; +Cc: 48472

tags 48472 fixed
close 48472 28.0.50
thanks

Hi Gustavo,

>> An "exit function" returned by `set-transient-map' is a clever thing,
>> without such returned function it would be more complicated to implement.
>> I quickly tried it out, and it works indeed.
>
> We have to thank whoever put it there.  And it seems to be there out of
> design and foresight.  As far as my grepping went (not that thorough),
> I didn't find an instance of usage of this return value in Emacs' code base
> as of yet.

It's amazing that the function returns exactly what we need
even though its return value is not yet used anywhere.
So I copied the same design to another similar function
display-buffer-override-next-command to return exitfun as well.

>> A new user option could be named `repeat-exit-timeout'.
>> 
>
> Sounds good to me.  And, I'm not sure I should be reading between the lines
> of your answer, but I could not avoid it, so I'll be forthcoming. I've gone
> as far as I'm allowed to.  I'd be happy to offer a patch, but no papers...

You are welcome to sign papers, so the next time you could offer a patch.
Now I pushed the implementation based on your suggestion, thanks for it!

(The implementation also includes a lot of small details like correctly
handling the messages, etc.)

If you are running on 27.2, you could still take the second part
of repeat.el from Emacs 28.





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#48472: [FR] A small suggestion for repeat-mode
  2021-05-18 21:04     ` Juri Linkov
@ 2021-05-18 22:09       ` Gustavo Barros
  0 siblings, 0 replies; 5+ messages in thread
From: Gustavo Barros @ 2021-05-18 22:09 UTC (permalink / raw)
  To: Juri Linkov; +Cc: 48472

Hi Juri,

On Tue, 18 May 2021 at 18:04, Juri Linkov <juri@linkov.net> wrote:

> It's amazing that the function returns exactly what we need
> even though its return value is not yet used anywhere.
> So I copied the same design to another similar function
> display-buffer-override-next-command to return exitfun as well.

Indeed it is pretty cool, nice that it has fulfilled its purpose and 
even "reproduced".

> You are welcome to sign papers, so the next time you could offer a 
> patch.

Well, I'd love to, and have tried to, but it turns out I can't sign 
them.

> Now I pushed the implementation based on your suggestion, thanks for 
> it!
>
> (The implementation also includes a lot of small details like 
> correctly
> handling the messages, etc.)

I thank you!

And I had assumed the timer would have to be stored and canceled at 
every repeat, and also that somehow the message would have to be cleared 
when the exit function timer ran.  I see you handled all that.  Looks 
good to me.

> If you are running on 27.2, you could still take the second part
> of repeat.el from Emacs 28.

I might!  :-)
But if you push me to you it, you run the risk of getting yet other 
"small suggestions".

Thanks again!

Gustavo.






^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-05-18 22:09 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-16 20:05 bug#48472: [FR] A small suggestion for repeat-mode Gustavo Barros
2021-05-17 21:24 ` Juri Linkov
2021-05-18 11:14   ` Gustavo Barros
2021-05-18 21:04     ` Juri Linkov
2021-05-18 22:09       ` Gustavo Barros

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).