Emacs 29 introduced a `restart-emacs` command that is more reliable, but
it cannot restart Emacs with arbitrary arguments, which the old
`restart-emacs` library could. Without this capability,
`doom/restart-and-restore` is not trivially (or elegantly) possible, and
I can't justify a whole extra dependency just to support that,
especially in my pursuit to slim down Doom's core.
This commit also removes the doom/upgrade command, which is an awkward
and fickle command to support across platforms (too many edge cases).
The `setq!` macro was created to solve my issue with `setopt` (that it
can eagerly load packages; imposing more side-effects than necessary).
Instead of having a separate, wrapper macro to fix the matter, I now
advise `setopt` directly to fix the problem, so that users don't have
another macro to keep track of. `setq!` will eventually be deprecated,
then removed in v3.
If a popup's rule contains :quit nil or :quit 'other, +popup/close will
do nothing, which isn't an appropriate substitute for quit-window, so
force it.
Amend: 29bc91bca5Fix: #8650
tuareg sets comment-continue to " * ", causing comment-indent-new-line
to insert ** on new lines inside comments. OCaml convention is to not
prefix continuation lines with *. Set comment-continue to nil instead.
The custom +ocaml/comment-indent-new-line wrapper is no longer needed.
Fix: #5194
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.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>
`+python-executable-find` hardcodes `bin/` as the virtualenv
executable directory, but Windows virtualenvs use `Scripts/`.
Ref: #5826
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
When `electric-quote-mode' is enabled with smartparens, the
`electric-quote-inhibit-functions' check (e.g. `org-in-src-block-p')
fails because smartparens' post-self-insert handler runs first and
interferes with buffer state. Re-add the electric-quote handler at
depth -50 so it runs before smartparens (depth 0).
Fix: #5051
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
And removes redundant rule (now covered by the `doom-temp-buffer-p`
check).
Also fixes an issue where org-agenda loses fontification due to
indent-bars-mode (#8681).
Fix: #8681
The `defadvice!' overriding `undo-tree-visualizer-show-diff' was placed
inside `(use-package! undo-fu ...)' which has `:unless (modulep! +tree)'
— so it only loads when undo-tree is NOT active. The fix never runs.
Move it to `(use-package! undo-tree ...)' where it belongs. Also add an
override for `undo-tree-visualizer-update-diff' that removes the
`balance-windows' call which conflicts with Doom's popup system.
Fix: #8521
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>
`doom --help` was missing `sync`, `upgrade`, `doctor`, and `profile` from
the command listing. The root cause: `doom-cli-load-all` iterates the CLI
hash table in non-deterministic order. When an alias stub (e.g. `doom s`
for `sync`) is processed before its primary command, `doom-cli-load` used
the alias's plist—which includes `:hide t`—as `doom-cli--group-plist`.
The loaded file's `defcli!` then inherited `:hide t`, incorrectly marking
the primary command as hidden.
Fix: strip `:hide` from the plist before passing it as the group plist,
and copy-sequence to prevent structural mutation of stored plists.
Fix: #8560
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This is a temporary measure until the interpolation in the powershell
script can be addressed directly (by someone better versed in
powershell).
Fix: #8572Close: #8654
Co-authored-by: kovan <kovan@users.noreply.github.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