Subject: Re:Re: bug#44328: 27.1; [PATCH] Add expand-abbrev-maybe condition key binding

From: "Zhu Zihao" <[email-masked]>
Date: Mon, 2 Nov 2020 13:41:37 +0800 (CST)

Actually, it's a menu-item definition, described in https://www.gnu.org/software/emacs/manual/html_node/elisp/Extended-Menu-Items.html

It can be bound to a keymap and use it like key bindings, it also support some dynamic features which normal keybinding can't do, according to manual.

At 2020-11-01 22:25:21, "Lars Ingebrigtsen" <[email-masked]> wrote:
>Zhu Zihao <[email-masked]> writes:
>
>> +@vindex expand-abbrev-maybe
>> +  If you don't want to check expand for every @code{self-insert-command}
>> +like Abbrev mode. There's a variable describing a conditional key definition
>> +You can bind it to some key like @kbd{TAB}. It' ll expand abbrev if
>> +there's some abbrev at point, and act like usual @kbd{TAB} if there's not.
>
>[...]
>
>> +(defconst expand-abbrev-maybe
>> +  '(menu-item "" expand-abbrev
>> +    :filter (lambda (cmd) (and (abbrev--before-point) cmd)))
>> +  "A conditional key definition for `expand-abbrev'.
>> +When this was bound, it will expand abbrev at point if there're any possible
>> +abbrev.")
>
>I'm afraid I don't understand the meaning of this constant, or what this
>is trying to achieve.  You talk about adding a new key binding, which
>should presumably refer to a new command (i.e. function)?
>
>-- 
>(domestic pets only, the antidote for overdose, milk.)
>   bloggy blog: http://lars.ingebrigtsen.no