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

From: Daniel Mendler <[email-masked]>
Date: Mon, 09 Dec 2024 20:28:06 +0100

Juri Linkov <[email-masked]> writes:

>> 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.

Thanks for testing!

> 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.

Okay, I will add this to to custom type.

> 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'?

I see. The keymap is not set up properly anymore if
`tmm-add-prompt' is disabled. I will add a fix.

Daniel