Hacker News new | ask | show | jobs
by monsieurbanana 1521 days ago
That's his point, people use company mode because Emacs doesn't have built-in "modern" completion UI. Completion at point uses the minibuffer, right? If so I wouldn't call it a real alternative, specially without minibuffers plug-ins like ivy and co.

I don't think the Emacs situation is bad at all, but I agree 100% that it needs third party plug-ins to be anything close to what people expect of an editor in 2022.

3 comments

His point is poorly expressed in that case. Let's look at the quote again.

>Contrast this with Emacs and Vim. They just don’t have proper completion as an editor’s extension point. Rather, they expose low-level cursor and screen manipulation API, and then people implement competing completion frameworks on top of that!

People don't implement competing completion frameworks on top of "low-level cursor and screen manipulation API". There are more high-level APIs included in Emacs, such as completion-at-point. To quote company-mode's website:

>The CAPF back-end provides a bridge to the standard completion-at-point-functions facility, and thus works with any major mode that defines a proper completion function.

To me the author misrepresents what Emacs has built-in and what package writers use.

Technically company-mode isn't third party, it's part of GNU Emacs. It needs to be downloaded, yes, but it's not third party. Emacs needs a package recommendation engine (I know VS Code has this, awesome!).

Thanks for the correction! Indeed, I am not super familiar how things work under the hood, I just observed a proliferation of completion frameworks on top!
This was perhaps the case in the very beginning, but everything is switching towards the built-in completion interface as a core, where you can extend both ways: provide elements to complete, or provide ways to perform the completion.

What you get with ivy/company/etc is different ways on how to expand/handle/show completions and they're all still relevant.

I'm using different frontends depending on the mode that I'm using. I personally dislike pop-up style completions. I'm using a mixture of completion buffers (the boring emacs built-in ones) ivy and ido instead.

> I wouldn't call it a real alternative, specially without minibuffers plug-ins like ivy and co.

Why is that? Emacs comes built in with modes like `fido-vertical-mode`, which are arguably more powerful and modern than `company-mode`. They're just not turned on by default.