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
And use it to replace the various `posframe-delete-all` hooks littered
about to clean up child/posframes in contexts where they may linger
after destructive operations (like changing the active workspace or
executing `doom/reload`).
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