Subject: Re: bug#64998: 29.1; `emoji-search' (C-x 8 e s) command can not be repeated using `repeat' (C-x z)

From: Jonas Bernoulli <[email-masked]>
Date: Sun, 03 Sep 2023 18:17:21 +0200

Eli Zaretskii <[email-masked]> writes:

>> From: Fadi Moukayed <[email-masked]>

>> Observed behavior:
>> 
>> No "up arrow" emoji is inserted.
>> 
>> The following messages are written on the *Messages* buffer:
>> 
>> Repeating command minibuffer-complete-and-exit
>> No match
>
> That command is implemented on top of transient.el, and I'm not sure
> transient supports "C-x z" repetition.  Jonas, can you comment on
> this, please?

Support implemented in 502e7c9a9b34c74b1b99f9e2f13a75f03dabba18 (and
a little follow up commit to fix a last minute hiccup).

There is nothing in Transient that would prevent commands from being
repeated using `repeat' or `repeat-complex-command', but of course
commands still have to follow the usual rules for making them
repeatable.

`emoji-search' even for glyphs that have no variants, because it read
from the minibuffer in the function body instead of inside `interactive'.

Same for `emoji-insert-glyph', but that additionally needed a bit of
transient specific work.  Normally such a command would use
`transient-args' to get the arguments from the transient prefix, much
like `current-prefix-args' works, but `emoji-insert-graph' is a bit
different, and we have the previously inserted graph elsewhere, when
the command is repeated (from the multisession-value `emoji--recent').