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" <larsi@gnus.org> wrote:
>Zhu Zihao <all_but_last@163.com> 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