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.
Enable polymode within code-blocks in Markdown files. Effectively, it
allows code-blocks of various languages to be handled by their
respective major modes, allowing correct syntax highlighting, snippets,
and other features to work as you would expect.
- Improve the switch to previous / recent list of persps.
- Add a indexes when showing list of current persps.
- Add `C-z <num>` keybindings to switch to persp by index.
Terraform-mode already comes with it's own
terraform-format-on-save-mode, but the way it inserts the corrected
source into the buffer often causes weird cursor movement which is
annoying.
This means that each project gets a separate solargraph server, rather
than one server handles all projects. This does mean more memory is
consumed, but it overall it makes lsp-mode perform much faster, and be
more stable.
Keep a list of most recently visited persps whenever you switch, and
enable switching back and forth between the current and most recently
visited persp.
Also when killing current persp, switch to the most recently visited
persp, instead of back to the default/nil persp.
Minor bug remaining is that the when killing current persp, the echo
area shows all persps like usual when switching, but it includes the
persp that was just killed, despite it already being killed.
And override `reformatter-replace-buffer-contents-from-file` with a less
intrusive variant based on how go-mode's `gofmt` command updates buffer
with formatted content.
On my 2016 MacBook Pro correction times are around 200ms with the
daemon, compared to around 3-4 seconds without.
There might be some issues if bundler depends heavily on gems included
in the project, but we'll see how that goes.
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.
- Remove old defunct settings which no longer do anything.
- Set treemacs to not be reachable via other-window, meaning you need to
use keybindings to focus on it, like `C-x p`.
As `C-;` cannot be used in terminals, make `C-x C-;` and `C-x ;` both
trigger the command I use the most, `help-projectile-find-file`. It's
still easy to trigger `helm-projectile` via `C-c p h`, wherein `C-c p`
is the projectile prefix.
- 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
By default when region is not active, both `downcase-region` (C-x C-l)
and `upcase-region` (C-x C-u) will operate on surrounding text in
different ways depending on major-mode. This has caught me off guard a
few times.
So let's replace them with safer `downcase-region-only` and
`upcase-region-only` functions which ONLY perform changes when the
region is active. And obviously changes are only applied to the text
within the region.
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.