The delay will not be adjusted on a per-GC basis, depending on its last
run-time. This should average to around 2-3s, which should be a good
compromise between GCing too often and too infrequently.
The semantics of add-hook's APPEND argument changed in 27.1: it was
replaced with DEPTH, which controls its exact order of the hook (and is
respected every time a function is added to a hook, throughout its
lifetime).
Includes a general refactor for add-hook! too.
There weren't enough checks that we were truly in a native-comp build of
Emacs. Not the most elegant solution, but the CLI rewrite handles this
far better so it'll do for now.
Fix#5131
Post-rewrite bin/doom will accept multiple -l's, but for now will only
accept one. This change was made to prepare for the documentation
generator, which will live outside the repo.
This adds support for two new definition types to the left! convenience
macro: defun* and defadvice.
First, defun* is for defining recursive, local functions (uses
cl-labels under the hood). e.g.
(letf! (defun* triangle (number)
(cond ((<= number 0) 0)
((= number 1) 1)
((> number 1)
(+ number (triangle (1- number))))))
...)
Second, defadvice is for defining temporary advice (which has a global
effect; it can later be improved to limit scope by redefining things
with cl-letf). e.g.
(letf! (defadvice my-fixed-triangle (fn number)
:around #'triangle
(funcall fn (1+ number)))
...)
'doom/reload' should and cannot regenerate the user's envvar file,
because it's not typically running in your shell, but it should reload
your existing envvar file.
Fix#5399
Ref #5344
Rather than reloading whatever `doom-theme` is set to, reload the
currently active theme(s). Although `load-theme` is advised to change
the value of `doom-theme`, not all theme switching commands use
`load-theme` (e.g. `consult-theme`).
Fix#5539
- Now counts and reports all commit references that aren't the correct
length, not just the first.
- Now reports all incorrect references, not just the first on each line.
Thise should reduce the artificial latency added to window manager
operations (like calls to some of Emacs' frame API, e.g.
make-frame-invisible) on the PGTK build of Emacs. This should mitigate
latency issues with childframes in general and packages that use them,
e.g. lsp-ui and company-box.
There's also a small chance 0.001 is much too low, and may cause
artefacting on especially slow hardware. More testing is needed.
- Linter wasn't failing on any invalid scopes due to logic error.
- Linter was failing to recognize module categories as valid
scopes (e.g. :lang, :ui, etc).
- Adds 'ci' and 'lib' as valid scopes.
Prior to this, (after! (a b) ...) would expand to
(after! b
(after! a
...))
After this, it expands to
(after! a
(after! b
...))
This fixes load order issues with packages whose deferred configs are
nested, such as org and ob-ditaa.
Ref https://www.reddit.com/r/emacs/comments/pp3sye/hd311nz
Its default value is acceptable in 28+ and handles clipboard integration
in PGTK Emacs, so we don't have to.
Thanks to @sei40kr for revealing this fix to me (in #5219).
Fix#5219
Half-reverts c2c6a64, which tried to get doom/reload to regenerate the
envvar file from within Emacs, but running an environment scraper in a
bare environment is really hard to get right. Ideally, your shell config
should set up your environment, but there are too many edge cases or
poor configs in the wild to depend on this.
I've brought back doom/reload-env, but only to reload the envvar file
-- *not* regenerate it. I've given up on trying to do that from within
Emacs.
Fix#5344
Ref c2c6a64118
Some logic derps from 0b5243c. Also restores
projectile-git-submodule-command in remote buffers (to fix a
wrong-type-argument error waiting to happen).
Ref 0b5243c12c
Ref #5360
Reduce how much projectile hits the server in TRAMP buffers by:
- Not looking for fd/fdfind (just use the VCS-specific commands
projectile provides and assume they're present on the remote).
- Not walking up the directory tree to display the project name in the
mode line.
- Reducing TRAMP file-cache misses.
- Reducing how chatty tramp is about its connections.
Fix#5360
ce31880 did not fix doom-system-cpus on msys2 builds because the
function didn't handle integer return values from any of its code
paths (which formerly returned strings or lists).
Ref ce31880cccFix#5347
This is more predictable, and is safe as a global default in CLI
sessions (but not in interactive ones). This indirectly fixes case
insensitivity in our commit linter rules.
If a file has auto-saved data (see auto-save-default), after-find-file
will stop the world for 1 second to tell you about it. Very annoying.
Just log it to *Messages* and open the file immediately.