[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#47711: bug#48841: fido-mode is slower than ido-mode with similar set
bug#47711: bug#48841: fido-mode is slower than ido-mode with similar settings
Wed, 7 Jul 2021 10:56:05 +0200
On 7/4/21 3:53 AM, Dmitry Gutov wrote:
>> - icomplete.el? for fido-mode & friends
>> - minibuffer.el, for the *Completions* buffer
>> - company.el
>> - Any notable others?
> corfu, consult, etc? Probably Ivy too. All of these are in GNU ELPA.
> BTW, I think Daniel had some ideas about applying the face property
> lazily as well. I can't find the particular discussion now, but perhaps
> he can add to this discussion as well.
Yes, Vertico and Corfu apply highlighting lazily. This leads to
significant performance wins. See `vertico--all-completions` in
The technique I am using in Vertico and Corfu retains backward
compatibility, such that the strings are returned unmodified by the
completion style. Highlighting is applied lazily by copying the
candidate strings and mutating the copies. For now I am relying on advices.
One could add an optional argument (or dynamically bound variable) to
completion styles which tell the completion style to opt out of copying
the candidates and the highlighting.