With vertico, orderless and marginalia, I feel the regular projectile
find-file and switch-project commands offer just as good if not better
completion than helm-projectile commands do. Hence the switch.
Override default straight recipe for vertico to expose extensions as
packages.
Also create hacky vertico-directory-mode to easily toggle
vertico-directory features on and off.
vertico-directory-mode is then used by a projectile advice to
temporarily disable vertico-directory features while completing results
from projectile. This is required to avoid breaking the
projectile-switch-project and related commands, as the project list is
not a set of files, but vertico-directory-enter thinks it is.
Trackpad momentum can often lead to emacs trying to resize font size by
thousands of points. Hence let's disable it, as font size changes are
easy enough via C-x C-- and C-x C-=.
Rails projects uses a "tmp" directory for asset compilation, which can
lead to thousands of olders, which lsp-mode will try to monitor, and
warns that you're about to monitor +1000 directories.
Hence, ignore "tmp" directories, as there shouldn't be any code in there
that needs a language server.
I finally resolved the lsp-mode bug I had whenever I tried vertico in
the past. It was due to me setting resize-mini-windows instead of
vertico-resize.
This serves as a alternative to the code-review package. I'm adding it
mostly for testing purposes so I can compare the two and see the
pros/cons with each.
When deleting a file in Dired, it has recently started prompting about
removing the dired buffer along with file buffer. This is rather
annoying, as I almost never want to close the dired instance I have open
when simply deleting a file from a folder.
So I've overridden the relevant function, and added an option
specifically to enable/disable the prompt about removing the dired
buffer.
Relying on file notifications to detect changes on disk and auto-revert
buffers seems unreliable on macOS, so let's disable the use of file
notifications, and let auto-revert-mode use polling instead.
Turns out running (magit-delta-mode -1) to "disable" or ensure it's
disabled as a magit-mode-hook was a bad idea, as it set
magit-diff-refine-hunk to nil.
So instead, we only call magit-delta-mode when siren-magit-delta-enabled
is not nil, and the delta executable is available.
Use consult-lsp-file-symbols if available and lsp-mode is enabled in
current buffer. Otherwise fall back to consult-imenu. Also fall back on
consult-lsp-file-symbols if it produces an error, which seems to happen
for some language servers right now.
Disabled by default, as the syntax highlighting can make code harder to
read in the diff. Hence disabled by default, and easy to toggle on if I
want to try it.