This is useful for annotating completion-read buffer results which all
belong to a single project, as it removes the project root from the
file path field, showing a relative path to each buffer's file from the
project root.
Personally I find orderless is giving me better results than prescient
when fuzzy/flex matching is enabled. Hence the switch to orderless.
I also split the modules apart to ensure, that selectrum, vertico,
prescient and orderless can be mixed and matched however and work
correctly.
And the switch from to vertico from selectrum is mostly cause I like
it's wraparound/cycle feature, where end/beginning of the candidate list
will wrap around.
The default 'marginalia-annotate-command annotation method for M-x
candidates has a small but perceivable performance impact as you
type. The 'marginalia-annotate-binding method does not have any
perceivable performance impact.
Also I only really care about seeing keybindings in the M-x list, I can
definitely live without command descriptions.
This is a basic setup, as I'm not very familiar with what is doable with
embark. It also takes over the goto-chg keybindings, cause that package
rarely worked correctly, so I almost never used it.
Packages that need to be loaded on emacs startup, should just be loaded
through use-package in a non-deferred manner.
It makes no real difference to startup, loading the packages either
slows down emacs before "startup" is complete, or right after it
completes. End result is that Emacs is unresponsive for basically the
same amount of time regardless.
The folding indicators in the fringe haven't been working when clicked
for some time now. And they also take precedence over other things
displayed in the fringe like git status.
Instead of directly using the my current favorite indentation
highlighting package in various places, only use the
siren-display-indentation function. This lets me control it from a
single central place.
I'm not fully convinced with swapping out ido with selectrum, so I'll
add the configuration for both, without actually loading them, and
instead manually try them out from time to time.
Also, make ivy use prescient for filtering and sorting, as it does a
much better job than ivy itself does by default. But nothing currently
uses ivy either, so it's more for future if I start using ivy somewhere.
Smex has not been updated since late 2015. Amx was originally a fork of
smex, but as since evolved much further into it's own thing.
Among other things is supports other completing backends, and ivy with
it's fuzzy matching feels rather nice. I'm keeping ido-mode for
everything else, but specifically for M-x I'll give ivy a try.
I've been using doom-themes' doom-vibrant for long enough now that I'm
certain I won't be moving away from it anytime soon. So let's simplify
and strip away all other theme setup stuff.
The undo history feature of undo-tree has been very unreliable lately,
to the point it fails to load undo history for nearly every file.
It seems the undohist package is a lot more reliable.
This module wraps around the fill-column-indicator and it's
fci-mode. This will enable easy switch-over to Emacs 27's native
display-fill-column-indicator feature.
Also create a new siren-display-line-numbers module and function that's
responsible for turning on the display of line numbers. Future changes
to how line numbers are displayed can now be done in a single place.
There are a few major modes which are not based on prog-mode, that I
want to behave like prog-mode. Previously each did nearly all the same
setup that's done via the prog-mode hooks. Now instead let's actually
run runs the hooks for prog-mode.
- Switch from highlight-indentation package to highlight-indent-guides.
- Activate visual indentation in a prog-mode hook, rather than doing
within each individual major mode. It was already done within all
major modes based on prog-mode anyway.
- Add new siren-display-indetation module and function as a central way
to enable visual indetation guides. This makes switching the
underlying package at some point in the future much easier.
I mostly use C-x C-m instead of M-x as I for some reason find it less
annoying to type. I really like helm-command's helm-M-x function, but I
find slightly too slow and slightly too intrusive than smex.
Hence I'm switching back my main keybinding to smex, but still leaving
helm-M-x bound to the M-x keybinding I use very rarely, just so I can
still access it when I need to.