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.
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.
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.
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.
Commit 194d54a929a83fede75d618b104acd1b544feb10 changed behavior of
deletion functions in Dired, causing Dired+ to break deletion, as it
wholesale replaces a bunch of Dired functions with it's own
implementation. For now I've just copied the Dired variants of those
functions to restore them.
Due to changes to use-package's :custom option, my abuse of it to set
custom variables no longer works and yields errors.
Instead correctly set custom variables with defvar.
A recent change (https://github.com/raxod502/straight.el/pull/558) to
straight.el's use-package integration led to some of my :straight
definitions throwing errors.
When overriding the package name, do not wrap the real name in parens,
for example:
;; bad (no longer works)
(use-package helm-global-bindings
:straight (helm))
;; good (worked before, still works)
(use-package helm-global-bindings
:straight helm)
There's two different variants, both callable via M-? in dired
buffers. Without a prefix arg it will use `siren-dired-get-disk-usage`
which uses the external `du` command to get disk usage, or "space on
disk" for item at point or marked files and/or directories.
If called with a prefix (C-u M-?) it will instead use
`siren-dired-get-size` which is implemented in pure elisp, and
recursively gets the actual file sizes for item at point or marked files
and/or directories.
As the prefix variant is written in pure elisp, it is quite a bit slower
for very large directories with thousands of files.
This allows editing code blocks within markdown files in a separate
buffer with the proper language major-mode applied.
Also integrate it with recursive-narrow, so it can be triggered with via
narrowing commands.
- Assign `helm-apropos` to `<helm-prefix> d` instead of the default
`<helm-prefix> a`, as that is now taken up by `helm-do-ag`.
- Use the `helpful` package to describe functions and variables.
Have both `C-c C-'` and `C-c '` bound to `helm-do-ag-project-root`, so
it can be triggered from a terminal. As `C-'` cannot be sent to emacs
due to limitations of terminal emulators.
Also move `helm-do-ag` from `C-c C-s` to `<helm-prefix> a`, now that the
`helm-command-map` can reliably be used. This effectively means you
trigger `helm-do-ag` with `C-c h a` right now.
This involved always loading `helm-config` which sets up
`helm-command-prefix` and `helm-command-map` allowing use-package to set
bindings on the map all without loading anything else until needed.
This is a temporary fix for now, as I prefer lazy-loading packages
whenever possible. However when lazy-loading helm, and then using
use-package to set a keybinding in the helm-command-map before it's
loaded, causes the "m" keybinding to be overridden by the default one
from helm, once helm loads.
- dired-subtree allows inline expansion of directories, effectively
rendering a tree of directories and files.
- dired-narrow enables lives filtering of all entries in a dired buffer,
making searching for and selecting directories and files much easier
and intuitive.
Additionally allow `recursive-narrow-or-widen-dwin` to also trigger
`org-edit-src-code` within org buffers. This technically does not use
narrowing, but it does "focus" on the source code block for editing, so
it at least in spirit embodies the intent of narrowing.
This behavior was inspired by:
https://endlessparentheses.com/emacs-narrow-or-widen-dwim.html
There's a few outstanding PRs and issues on helm-ag. I've collected the
changes I care about into my own fork under a branch called
`personal-patches`, and using that for now.
I mapped helm-make-projectile to "m" within the helm-command-map, which
replaced helm-man-woman which, so let's make that available as "M"
within the helm-command-map instead.