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.
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.
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.
- Bind consult-lsp-diagnostics to C-c C-\ as it is visually less
intrusive, and scoped to only the current workspace.
- Bind helm-lsp-diagnostics to C-c \ which includes diagnostics from all
active workspaces.
Because dired+ must be loaded before the dired creates a buffer, we have
to actually manually require dired+ when loading dired. Otherwise the
first dired buffer within a fresh Emacs instance will have dired+
features, but any further buffers will.
Also we can now remove a workaround for dired+ with Emacs 28 that
prevented files/folders from being deleted with dired.
Further tweaks to helm appearance, now simply take up the full frame
with it's completion UI. When follow mode is enabled, have preview
appear in bottom half of the window.
This reverts helm back to not using posframe, as it is kind of glitchy
and a bit slow. Helm has a built-in posframe like thing, but it doesn't
work quite the way I want, so I might try and sort that out at some
point.
When lsp-mode is enabled, use consult-lsp-file-symbols instead of
consult-imenu, as it yields a more structured list and nicer formatted
symbol results. The result list is identical as lsp-mode updates imenu
with all file symbols, but via imenu they're just not rendered as
nicely.
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.
Use the makefile-executor package instead of helm-make to execute make
targets. But we still rely on helm-make due to it's more efficient
available targets lookup function compared to that of makefile-executor.
Running make targets is bound to C-c C-m now which is nice and fast, and
completes via completing-read, which is currently giving a better
suggested candidates via selectrum+orderless than helm-make does.
And helm-make is still available via the old C-c h m keybinding.