emacs-devel
[Top][All Lists]
Advanced

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

Re: Stepping Back: A Wealth Of Completion systems Re: [ELPA] New package


From: Daniel Mendler
Subject: Re: Stepping Back: A Wealth Of Completion systems Re: [ELPA] New package: vertico
Date: Wed, 7 Apr 2021 17:17:07 +0200

On 4/7/21 4:15 PM, Philip Kaludercic wrote:
I think I've also mentioned that selection can be hierarchical. I think
this too would be applicable to insert-char, considering how unicode
divided into groups and subgroups.

I agree that hierarchical selection can be useful when browsing through a structure. However when doing a quick selection, I perceive it as slower. For example there is imenu, where you have to step through multiple layers of the hierarchy to reach the destination. A popular demand is for a flattened imenu which allows faster completion, see for example the package flimenu or counsel-imenu. But as soon as you flatten you certainly use the ability to browse the structure, so you have some point.

All of these features already exist, partially or only to the degree it
is found to be necessary. Eg. ibuffer has hierarchies and the ability to
filter by some preconfigured predicates. I think that there is a general
pattern here that can be exploited to make the overall experience more
uniform.

I wonder how all these use cases could be unified under a common API. I would certainly not want to lose the current fast, flat selection mechanism via completion as offered by `completing-read'.

Regarding predicates, there is an idea how this could be integrated with completion. One can implement a completion style which support a filter language, depending on the completion category. The completion style can then execute the filter predicates on the corresponding objects. However such an approach certainly takes it a bit far as completion styles are concerned. I think Icicles offers options to filter within completion based on predicates?

Daniel Mendler



reply via email to

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