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.
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.
As I don't see myself using tabs all the time, but potentially wanting
access to them every now and then, I need to manually trigger one of the
tab / tab-group switching keybindings, or M-x centaur-tabs-mode to load
and enable it.
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.