reddit / emacs

[Package of the day] Better completion in Emacs

ReneFroger · 2022-07-28 22:07
trae · 2022-07-29 00:36
I'm kinda lost -- there are a million completion frameworks for emacs. What makes this one better?
heartb1t · 2022-07-29 01:52
it isn't a completion framework, it is just a front-end for completion at point. it will _basically_ only use the functions defined in `completion-at-point-functions`. it is a replacement of `company-mode`.
ireallywantfreedom · 2022-07-29 13:42
I'm similarly confused, it seems like every year there's a new one people are using, helm, ivy, vertico, corfu. I feel like I'm in JavaScript land.
physicologist · 2022-07-29 15:18
Corfu (and Vertico) is trying to move us away from Javascipt land. Helm, Ivy, and Company all made great improvements to the Emacs experience. Unfortunately, they each had their own ecosystem and sometimes the completion you wanted was for the wrong engine. Meanwhile, Emacs itself is a moving target and the baseline experience also improves. Corfu and Vertico both take advantage of the existing completion engines and just add a nicer interface on the front. The brilliant part is that anything which targets Corfu will also work with Company, since it already supports a capf backend. I share your fear of a community splintered by incompatible packages. However, the explosion of packages over the past couple of years has largely been focusing on ensuring cross compatibility between packages. That you aren’t in the JavaScript situation where you have to jump from Helm to Ivy to Vertico. Instead, the main push is that a package which works with these thinner wrappers will work with all the frameworks. So you can choose whichever one makes you happy, stick with it, and know that your Emacs experience will continue to improve even if your preferred framework isn’t the winner.