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
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 `line-spacing` variable can be set to a cons cell of the form
`(ABOVE . BELOW)`. The old logic did not account for this.
This is corrected by summing the `car` and `cdr` of `line-spacing` when
it is a cons cell to get the total vertical spacing. This logic is
adopted from `total-line-spacing` introduced with the added support of
[cons line-spacing in emacs 31][1]
[1]: e8f26d554b
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.
Way back, I added these three pseudo-features:
(featurep 'dynamic-modules)
(featurep 'harfbuzz)
(featurep 'jansson)
Why? Because some build features have pseudo features (like
`tty-child-frames`, `pgtk`, and `threads`), but others don't, and I
wanted more consistency around build feature detection. Years later, I
realized it wasn't used much internally and only ended up confusing
readers who didn't realize these were Doom's additions and not built
into Emacs. Emacs' idiosyncrasies may not be nice or elegant, but
they're less surprising to elisp beginners and veterans alike.
Newer versions of MacOS seem to struggle with the async processes
diff-hl frequently spawns when `diff-hl-flydiff-mode` is active, so the
mode will be disabled by default in MacOS environments.
Fix: #8554
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
Tramp users get bombarded with these prompts because diff-hl exploits
`make-auto-save-file-name` to generate paths to its temp files *and*
writes them to `temporary-file-directory`, which
`tramp-handle-make-auto-save-file-name` doesn't like.
MacOS especially seems to struggle with either async process management
or low timer delays, and diff-hl tends to spin up many async `git`
processes frequently, potentially causing freezes or intense typing
delays for Mac users.
Ref: #8554
font-utils.el disable its cache on X and Windows so every check for the
existence of a font recomputes the font list, which takes a
non-negligible amount of time, at least on X. This default is reasonable
as stated in the docstring of font-utils-use-memory-cache:
> Disabled on X11 and MS Windows by default, because font-family-list
> often gives truncated results before Emacs is fully initialized.
This is, however, unreasonable from unicode-fonts, where calls to check
the existence of fonts happens in a loop; during the loop, Emacs is not
going to suddenly become fully initialized, , so each call is
actually recomputing the same font list over and over again.
Enabling the font-utils memory cache, at least for the duration of
unicode-fonts-setup, thus drastically reduces the initial startup time,
or the startup time when the pcache store is reset for some reason.
Bad-ptr/persp-mode.el@f146ddccaf -> Bad-ptr/persp-mode.el@82680795b3
this fixes a nasty bug where new eglot workspaces corrupt the previous
one. symptoms of this can be your definition jump source buffer being
read-only and renamed to:
`*EGLOT (jump-destination-project/(your-lang-mode)) stderr*`
The signature of `persp-activated-functions` changed upstream in
persp-mode (bumped in a1121ac), but treemacs hasn't updated its usage of
it yet.
Ref: #8454
Amend: a1121acc94
Wherever an interactive motion command (that good-scroll has advised) is
used programmatically.
This should be addressed upstream. Either by adding
boundary/called-interactively guards to
`good-scroll--point-at-top-fix-a`, or by avoiding interactive motion
commands in ledger-mode.
Fix: #8376
Commit 0893edefae removed magit-todos and
the "SPC p t" keybinding. The documentation of hl-todo does not reflect
this change.
This commit removes said keybinding from hl-todos documentation.
When Emacs is started as a daemon and no frames exist, `emacsclient -c`
should simply switch to the main workspace. However, before
`+workspaces-associate-frame-fn` is called, the new frame is already
added to the frame list, which causes `persp-frame-list-without-daemon`
to always return a non-empty list. A new workspace will be created
instead of switching to the main one.