bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#68214: Completion sorting customization by category


From: Juri Linkov
Subject: bug#68214: Completion sorting customization by category
Date: Thu, 04 Jan 2024 19:21:29 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)

>>> This function could be used to look up the other meta data
>>> functions too, `display-sort-function`, `annotation-function`,
>>> `affixation-function`, `group-function`, etc.
>> 
>> All these meta data functions could be added later to
>> completion-category-overrides after pushing the current patch.

Now the patch is pushed to master.

> Makes sense, the `display-sort-function' is a good start. I suggest to
> at least add the `cycle-sort-function' too. The cycle threshold can be
> customized too.

Looks like the cycle threshold is already supported,
so I'll add the other meta data.

> For later - in some cases one may also want to customize the
> `annotation-' or `affixation-function'. We have a whole package which
> does only that - see Marginalia on GNU ELPA. In contrast to sorting, for
> annotations one has to work a bit harder, since one may not have access
> to locally let-bound candidate-related data, which is only accessible by
> the completion table closure and not globally.

I guess users should be able to customize completion-category-overrides
in such a way that categories could be associated with Marginalia functions.
So users could enable Marginalia for one category, and disable for another.

>> Maybe customization of completion-category-overrides could support
>> a catch-all category `nil` for completions without metadata, like
>> e.g. `nil` can be used in .dir-locals.el as a catch-all for all modes.
>> But I'm not sure how useful this would be.
>
> Okay. I suggest t instead of nil for the catch-all category. This seems
> more aligned with other customization options or Lisp language
> constructs like `cond'.

This could be done as well.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]