Make motions account for completions-header-format (Emacs 29)
Make check for first candidate account for completions-header-format (Emacs 29)
Add sorting functions for Emacs 29 user option 'completions-sort'
Remove code that was meant for Emacs 27 (not supported anymore)
Reuse helper function to avoid repetition in pass/block predicates
Merge branch 'restart-development'
I am restarting the development of MCT with the sole intent to keep it
in good working condition for the handful of users who like it. I do
not plan to expand the scope of the package. Instead, I am removing
certain features of dubious value and am cleaning up the code (which
was in a good state, all things considered).
To recap:
- MCT is a layer of interactivity on top of the default Emacs
minibuffer and the *Completions* buffer. It treats the two as a
unified space and provides commands to intuitively move between
them.
- MCT provides a facility for "live completions" which automatically
update the *Completions* buffer given certain conditions. Users
have access to options for a passlist and blocklist which further
control what should be live updated.
- On 2022-04-14 I had announced the discontinuation of the project's
development:
<https://protesilaos.com/codelog/2022-04-14-emacs-discontinue-mct/>.
The reason was that Emacs 29 was assuming certain features that MCT
had. I thought that Emacs 29 would provide an MCT-equivalent
experience and was making way for that eventuality. It turns out
that I was mistaken: MCT is still more featureful and might show the
direction for future developments on Emacs 30.
Now the other news:
- I still think 'vertico' by Daniel Mendler is the best User Interface
for the minibuffer. Where relevant in my Emacs coaching sessions, I
always recommend Vertico: <https://protesilaos.com/coach>. It is
robust and highly configurable. What MCT does, Vertico does better.
My plan for my personal config is to have two modules, one for
Vertico and another for MCT, so that I can use the former by default
and the latter when needed. (Again, I want to maintain MCT but will
not add major new features.)
- I have removed support for Emacs 27. This was a mistake from day
one. Emacs 27 cannot show the *Completions* buffer in one-column
view and thus lacks the primary user-facing aspect of MCT.
- I have removed everything that has to do with in-buffer completion
('completion-in-region'). While it is nice to have a uniform
interface for completions in the minibuffer and inside buffers, the
latter was never good enough. This is not an MCT problem, but how
inherently limited the *Completions* are in the scenario where the
minibuffer is not activated. I will continue using 'corfu' by
Daniel Mendler.
- For a brief period of time I experimented with various extensions to
the core MCT functionality (e.g. integrating with 'avy.el'. These
are all removed. There now is a single 'mct.el' file. It works
fine for what it was originally designed to do: enhance the
minibuffer UI.
DELETE mct-region-mode; remove remaining extras
Make the blocklist take precedence over the passlist
Update package information
Remove reference to Emacs 27; 28 is the minimum
Add missing block about package sources
Simplify the front matter in the README.org
Add README.md to make it easier for all Git forges
Use line-{beginning,end}-position where relevant
Do not extend mct-highlight-candidate
Delete old deprecation code
DEPRECATE mct-completions-format
DEPRECATE mct-display-buffer-action
Fix mct-live-completion :type for one option