Our great sponsors
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
You may have seen my Consult package and the Marginalia package, made by /u/oantolin and myself. These packages should mostly work out of the box with your completion UI. Then there is Omar's Embark which allows to execute actions on the completion candidate at point in the *Completions* buffer. You may also be interested in the Orderless completion style.
You may have seen my Consult package and the Marginalia package, made by /u/oantolin and myself. These packages should mostly work out of the box with your completion UI. Then there is Omar's Embark which allows to execute actions on the completion candidate at point in the *Completions* buffer. You may also be interested in the Orderless completion style.
You may have seen my Consult package and the Marginalia package, made by /u/oantolin and myself. These packages should mostly work out of the box with your completion UI. Then there is Omar's Embark which allows to execute actions on the completion candidate at point in the *Completions* buffer. You may also be interested in the Orderless completion style.
You may have seen my Consult package and the Marginalia package, made by /u/oantolin and myself. These packages should mostly work out of the box with your completion UI. Then there is Omar's Embark which allows to execute actions on the completion candidate at point in the *Completions* buffer. You may also be interested in the Orderless completion style.
In general when designing this package I've made sure to rely on the existing capabilities of the default completion interface - vcomplete-next/prev-completion both rely on the built in next-completion (which is bound to TAB in the completion list buffer by default), vcomplete-choose-completion just switches to the completion list buffer and calls choose-completion to choose the completion at point. This is done to avoid direct handling of completion tables (in my experience, packages that make use of advanced features of the completion system tend to break with custom completion functions which directly read the completion table, see for example https://github.com/joaotavora/eglot/issues/577 (BTW, this issue might happen with Consult's completion-in-region function too)).
I too am guilty of once writing a package that updates the *Completions* buffer as you type: live-completions. My package didn't have a way to move the "currently selected" completion from the minibuffer (because I didn't mind switching to the completions buffer for that). Recently u/protesilaos also wrote his own version, in prot-minibuffer.el. I'm sure there are many other examples.
Ever tried to open the MELPA recipes directory with dired? It's slow as hell. Even a naïve PoC based on Navigel which I wrote in a couple of hours opens it in less than a second (even when using the full columns)!