Subject: bug#22324: 25.0.50; completion-category-defaults style doesn't override completion-styles (gets prepended instead)

From: Dmitry Gutov <[email-masked]>
Date: Sat, 29 Jan 2022 03:57:35 +0200

On 29.01.2022 01:18, Stefan Monnier via Bug reports for GNU Emacs, the 
Swiss army knife of text editors wrote:
>> Trying to honor the user's customization of 'completion-styles' makes
>> a certain amount of sense. Though I don't know how much we honor it this
>> way: if the user is relatively new, they might not even know to keep typing
>> to see the fallback, after noting that their input does not give them the
>> matches they expected.
> 
> Actually, I suspect it works better for new users than for old ones: new
> users don't yet have a clear mental model of how Emacs's completion
> works so they might expect something more like what you see with a web
> browser search where adding more data can completely change the
> proposed completions.

But a web browser model is more like a single 'flex' completion style. 
You get fuzzy matching and a score-based searching.

After my input in the address bar makes the completions list shrink to 
just a few entries, it never occurs to me to keep typing to see 
something else that is not in that list.

In Firefox that will never work -- but it works with completion styles 
in Emacs.

> In contrast old-timers may indeed "know" that there won't be any
> completions further down and will never reach the second style (to some
> extent, that's how I got Richard to accept `partial-completion` in the
> default).
> 
>> It's more of a critique of the whole "list of styles" design, admittedly.
> 
> I don't regret doing it because I don't think there was any other
> way to activate `partial-completion` by default, but yes it has
> its downsides.

Sure. I'm just not sure where we go from here.

A "single completion style" approach (with sorting and scoring) would 
make things easier and familiar in the long run. But if we stay with the 
current approach (which has its upsides), seems like Daniel's suggestion 
can be a good option for this particular bug.