54 lines
2.7 KiB
Plaintext
54 lines
2.7 KiB
Plaintext
|
|
|
|
<p>Raw link: <a href="https://www.youtube.com/watch?v=roSD50L2z-A">https://www.youtube.com/watch?v=roSD50L2z-A</a></p>
|
|
|
|
<p>In this video I showcase my new package, <code>mct.el</code>. It makes the default
|
|
completion experience feel closer to what you get with vertically
|
|
aligned third-party completion interfaces, by only re-using built-in
|
|
functionality and its own glue code.</p>
|
|
|
|
<p>Quoting <a href="https://protesilaos.com/emacs/mct">from its documentation</a>:</p>
|
|
|
|
<blockquote>
|
|
<p>Minibuffer and Completions in Tandem, also known as “MCT”, “Mct”, mct,
|
|
or mct.el, is a package that enhances the default minibuffer and
|
|
<code>*Completions*</code> buffer of Emacs 28 (or higher) so that they work
|
|
together as part of a unified framework. The idea is to make the
|
|
presentation and overall functionality be consistent with other
|
|
popular, vertically aligned completion UIs while leveraging built-in
|
|
functionality.</p>
|
|
|
|
<p>The main feature set that unifies the minibuffer and the
|
|
<code>*Completions*</code> buffer consists of commands that cycle between the
|
|
two, making it seem like they are part of a contiguous space.</p>
|
|
|
|
<p>MCT tries to find a middle ground between the frugal defaults and the
|
|
more opinionated completion UIs. This is most evident in its approach
|
|
on how to present completion candidates. Instead of showing them
|
|
outright or only displaying them on demand, MCT implements a minimum
|
|
input threshold as well as a slight delay before it pops up the
|
|
<code>*Completions*</code> buffer and starts updating it to respond to user
|
|
input.</p>
|
|
|
|
<p>Customisation options control the input threshold
|
|
(<code>mct-minimum-input</code>) and the delay between live updates
|
|
(<code>mct-live-update-delay</code>). Similarly, a blocklist and a passlist for
|
|
commands are on offer.</p>
|
|
</blockquote>
|
|
|
|
<p>MCT is not available in any package archive for the time being, though I
|
|
do plan to submit it to GNU ELPA. In the meantime, you will have to
|
|
install it manually or with the help of <code>straight.el</code>, <code>quelpa</code>, or
|
|
similar. Its source code: <a href="https://gitlab.com/protesilaos/mct">https://gitlab.com/protesilaos/mct</a> (a
|
|
Github mirror exists as well).</p>
|
|
|
|
<hr />
|
|
|
|
<p>Those familiar with <a href="https://protesilaos.com/emacs/dotemacs">my dotemacs</a> may
|
|
notice that <code>mct.el</code> is derived from my now-deprecated
|
|
<code>prot-minibuffer.el</code> library. The longer-term plan is to turn every
|
|
piece of my custom code into its own package or submit it as a patch for
|
|
emacs.git (as we did with the <a href="https://protesilaos.com/codelog/2021-10-15-emacs-29-eww-rename-buffers/">auto-renaming feature of EWW
|
|
buffers</a>).</p>
|
|
|
|
|