Subject: Re: bug#60980: FR: It would be useful to have a repeat-exit-function for a repeat-map

From: Juri Linkov <[email-masked]>
Date: Mon, 30 Jan 2023 10:29:30 +0200

Thanks for the feature request.

> What I need from repeat.el
> ================
> When I exit the repeat map---for example when I press <return> in the video,
> and leave the "navigation mode" to "edit mode"---I want to unhighight the thing.
> That is I propose that there be a provision in `repeat.el` to associate
> an `exit-function` with a repeatable map
> (put 'thing-sexp-map 'repeat-exit-function 'thing-unhighlight)

The problem with the symbol property name `repeat-exit-function` is that
the existing variable `repeat-exit-function` has another purpose.

For example, for `repeat-exit-timeout` there is the global variable
and the symbol property with the same names because they are doing
the same thing.

But the variable `repeat-exit-function` is different.  It's not
customizable by the user.  So another name would be preferable.

> Additional Note
> ==========
> If you squint a bit, `repeat-echo-function` is an `exit-function`
> ... but the problem is it doesn't provide what map is being exited.
> See bug#60353: 30.0.50; Make `repeat-echo-function` as a LIST of functions

Indeed, before adding a new symbol property could you please try to use
the existing `repeat-echo-function`.  It's called with the nil argument
on exit.  Do you need a symbol property `repeat-echo-function`, or can use
the global variable, e.g. by checking some buffer-local variable in it?