Description
As a result of various failed efforts to work around limitations in default CRM, really fixing these problems will likely require writing a specialized dynamic completion table that does what we want. Basically, I think it would mean rewriting CRM and using that instead.
See:
minad/vertico#59 (comment)
#155.
To summarize the issues with CRM:
- terrible for long candidate strings (which we use; see Alternative multiple candidate select UI? radian-software/selectrum#489)
- initial-input inconsistency (CRM and initial-input question minad/vertico#59)
- and in general, it just seems a poor step-child to
completing-read
(though there's probably only so much we can do about that)
So I believe this would mean writing a function to adapt crm to a) shorten that candidates strings to key in the prompt (what I was experimenting with in #155), and b) adding "initial-input" and such to all selections. I don't know how to do either ATM.
Note: one downside is it would only work with fully compliant implementations, like icomplete-vertical
and vertico
. It currently would not work with selectrum
. But in mid-2021, vertico
is looking like a better option anyway.
Maybe whether to use single or multiple should be configurable?
It's worth noting that the completing-read-multiple
function is fairly short. The entire crm.el
file is only about 200 LOC.