Subject: Re: bug#74616: 30.0.92; tmm always displays the *Completions* buffer

From: Juri Linkov <[email-masked]>
Date: Mon, 09 Dec 2024 21:03:10 +0200

> I attached a patch which adds a customization option
> `completion-eager-display' and an `eager-display' completion table
> metadata. The customization option can be set to nil (never), t (always)
> or to auto, which means that the *Completions* buffer will only be shown
> if the completion table requests eager display via the `eager-display'
> metadata.
>
> I updated ffap.el, tmm.el and imenu.el to take advantage of the new
> `eager-display' metadata. I added completion categories where missing
> such that overriding the metadata becomes possible. If desired, the
> metadata can be moved to `completion-category-defaults' instead.

Thanks, I tested everything, and it works nicely.

One small detail that could be added later is to extend
the customization type of `completion-category-overrides'
:value-type with `eager-display'.  Since currently
only programmatic use is supported.

Also tried to do:

  (add-to-list 'completion-category-overrides
               '(tmm (eager-display . nil)))

but after typing TAB it pops up the completion buffer
where all functionality is lost.  Is this because
`tmm-add-prompt' is called only for non-nil `eager-display'?