Prevent `get-register`s advice from affecting the `get-register` call in
`evil-get-register` in `+evil--use-evil-registers-a`.
Ref: #8698Fix: #8699
Amend: 88e2a0d5de
Some were outdated, some were incorrectly labeled, others were already
completed, some were missing... Gotta fix them all.
Also, in :ui hl-todo, there are comments that describe how Doom uses
each of these annotations; those have been updated.
In the spirit of 6f40ad5, I'm deprecating this macro because it doesn't
provide enough value to exist and serves only to complicate a casual
reader's understanding of Doom's modules.
Ref: 6f40ad55f5
Makes Emacs more broadly aware of Evil's registers (when Evil is
active), and fixes an issue where our advice integrating
`consult-register` with Evil registers would properly list Evil
registers, but not fetch/insert them correctly (#8698).
Fix: #8698Close: #8699
Co-authored-by: liaowang11 <liaowang11@users.noreply.github.com>
The :k(ill) ex command referenced `doom/kill-current-buffer`, which
doesn't exist. Replace with `kill-current-buffer`, matching every other
kill-buffer binding in the codebase (zx, SPC b k, q, etc.).
Fix: #6341
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
`evil-ex-search' (used by `n'/`N') calls `isearch-range-invisible'
which temporarily opens fold overlays to check visibility, but never
calls `isearch-clean-overlays' to restore them. This corrupts org-fold
overlay state, making subtrees permanently unfoldable with TAB.
The initial `/` search properly cleans up via
`evil-ex-search-stop-session', but repeated `n'/`N' navigation skips
this step. Add `:after' advice to call `isearch-clean-overlays'.
Ref: emacs-evil/evil#1630
Fix: #8625
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
If editorconfig changed the indent settings after
`+whitespace-highlight-incorrect-indentation-h` fired, whitespace-mode
does not update its highlights, so it must be triggered manually.
Fix: #8573Close: #8655
There's little reason for users to use these macros in their private
configs over plain ol' `with-eval-after-load` and `use-package`, unless
they're writing their own modules.
It's my fault for signal boosting them in documentation and whenever I'm
asked for help, because beginners now believe they are somehow
required for Doom to work correctly (there are guides out there
telling beginners that migrating to Doom involves replacing all
instances of `with-eval-after-load` and `use-package` in their
pre-existing configs with `after!` and `use-package!` -- which was never
true).
What's more, I plan to replace `use-package`, internally, so the
`use-package!` macro won't exist for much longer.
Treat paths as paths, rather than strings. Removes the requirements that
doom-*-dir variables end in slash (though I'll continue doing so as a
convention). Also moves a lot of cache/data into the current profile's
cache/data directories. Shouldn't actually affect anything for folks not
using Doom's profile system (yet).
Fix: #8616
Allows:
(set-formatter! 'ruff :modes '(python-mode python-ts-mode))
Prior to this, you'd have to supply the whole definition to assign an
existing formatter to new modes.
apropos throws up an arith-error trying to rank the results of matchless
regexp (which can result in a segfault on some systems; see #8532), and
is *incredibly* slow lookuping up short queries, so the command will now
abort if the query is just a regexp operator or less than 3 characters
long.
Fix: #8532
BREAKING CHANGE: Moves ws-butler, dtrt-indent, and whitespace defaults
out of Doom's core and into a new module. ws-butler is gated behind
+trim and dtrt-indent behind +guess. Users who depend on/like these
packages will need to enable the new module and their respective
flags (which is the default going forward).
This change is motivated by an ongoing effort to slim down Doom's
core (by (re)moving non-essentials from it).
This also addresses an issue where dtrt-indent would vastly increase
load times for some major-modes (e.g. elixir-mode & elm-mode, see #7537)
by restricting it to non-project files and non-read-only buffers AND
excludign those two major modes from indent guessing.
Fix: #8516Fix: #7537
While not strictly necessary (because apheleia uses
`provided-mode-derived-p` for its major mode tests), many *-ts-modes
didn't declare themselves children of their base modes until 30.1+.
It's too much hassle to claim either 'SPC b s' or 'SPC f s' for the
saving-without-formatting command (and to justify why one over the
other), so porque no los dos? Plus, I now leave 'C-x C-s' (save-buffer)
alone; principle of least surprise and what not.
Fix: #8460
Ref: https://xkcd.com/1172
ts-modes do this already in 30/31+ (`derived-mode-add-parents` was added
in 30), but is still needed for 29.x users and any ts-modes that haven't
adapted (many of them).
Fix: doomemacs/community#29
Experimenting with a new approach to this issue, in an effort to avoid
advice on such low level commands ({basic-,}save-buffer). I don't like
that we're still stacking new behavior on top of their pre-existing
prefix arg behavior (manipulating backup-on-save functionality), but
maybe it's not useful enough to worry about?
Fix: #8420
Amend: f0c8290ae2
Replace direct calls to `hs-looking-at-block-start-p` and
`hs-find-block-beginning` with their corresponding function variables to
ensure compatibility with hideshow mode's configurable function
handling.
These function variables are set in [`treesit` in Emacs 31][1]. It broke
fold because `hs-block-start-regexp` is set to `nil` explicitly by
treesit overrides.
The default for `hs-looking-at-block-start-p-func` and
`hs-find-block-beginning-func` are same as what was being called before.
Ref:
[1]: https://github.com/emacs-mirror/emacs/commits/2e3b085d447bc2cd1a0e779145be9cab9a15d7af
We bind to basic-save-buffer in :config default (and save-buffer calls
it too), so we advise that instead. However, this is a temporary
solution because it casts way too wide a net. Probably better to add a
new save-without-formatting keybind instead.
Fix: #8420
Now `doom-debug-mode` manipulates `doom-log-level` if you activate it
with a prefix arg, setting it to 1 by default, reducing its verbosity
and cutting down on noise in the logs.