On Windows, restart-emacs doesn't escape its arguments properly (#6219).
56686f677a attempted to fix this, but ended up breaking it for
everyone else as well, causing the type error:
Wrong type argument: listp, "--eval \"(add-hook 'window-setup-hook #'doom-load-session 100)\""
This commit fixes both the regression and the original issue.
Amend: 56686f677aFix: #6219
This regression was introduced in 10d00b7cc4, causing
"wrong-type-argument: stringp (X . Y)" errors. It is triggered when
doom-files-in is used with a non-nil :map on a nested directory
tree (like our module tree).
Fix: #6370
Amend: 10d00b7cc4
By default, 'doom ci deploy-hooks' would deploy Doom's git hooks in
$EMACSDIR (~/.emacs.d/.git/hooks). Now it deploys in the local repo its
run in. This is part of an effort to generalize Doom's CI for use
outside this repo.
Ref: 4bae9ffa47
Continues from 47d1b82 as part of an effort to generalize Doom's CI for
use outside this repo:
- 'doom ci ...' commands now:
- Run in the context of the local repo where they're run, rather than
from Doom's install directory ($EMACSDIR).
- Load the first of $REPO_ROOT/.github/ci.el, $DOOMDIR/cli.el, or
$DOOMDIR/cli.el, before executing CI commands. This allows for
per-project configuration, for example:
- https://github.com/doomemacs/doomemacs/blob/master/.github/ci.el
- https://github.com/doomemacs/themes/blob/master/.github/ci.el
(Details may change post-3.0)
- Scopeless commit types are now enforced in `doom-cli-commit-scopes`,
rather than `doom-cli-commit-rules`. This lets you specify exceptions,
like 0597466261.
- `doom-cli-commit-scopes` now supports sub-lists, as an easy way to
permit type-local scopes. E.g. To allow 'install' and 'faq' scopes
only for 'docs:' commits.
(add-to-list 'doom-cli-commit-scopes '(docs "install" "faq"))
These sublists accepts predicates too.
- Fixed the link to git conventions in the linter's failure/warning
output, to point to our Discourse post.
Ref: https://github.com/doomemacs/doomemacs/blob/master/.github/ci.el
Ref: https://github.com/doomemacs/themes/blob/master/.github/ci.el
Ref: 0597466261
Amend: 47d1b82382
When launching Doom via 'doom run', the child process inherits
bin/doom's environment. This change restricts this sub-environment to
the intended target: straight and its use of git.
Fix: #6320
Information is lost when converting font-spec's to xlfd strings (mainly,
DPI), in order to make them compatible with the face frame parameter. To
avoid this, we set the faces' :font attribute instead, which natively
accept font specs, xlfd strings, font objects, and xft strings; no
conversion necessary.
Fix: #6131
Eventually, our modules will move to their own repos (doomemacs/modules
and doomemacs/contrib-modules). Once done, it will formally adopt the
CalVer versioning scheme (Doom's core will stick to SemVer -- these
decisions will be better explained later). These mini-releases won't
mean much until this happens, hence the -dev suffix.
- Fixes a wrong-number-of-args error, due to outdated interactive
spec (#6227).
- Fixes a regression (caused by the refactor in dcae7187b4) where the
doom-info buffer is initially too short (~3 lines tall) to display all
of its contents.
Fix: #6227
Amend: dcae7187b4
I was discussing issues generating autoloads files from some packages
with someone on Discord, and they mentioned issues with
alphapapa/bufler.el, so I added doom-autoloads-excluded-files in
5d0f781062, and also added bufler to it by default. In hindsight, that
doesn't make much sense as a default when Doom and its modules don't
even install bufler (and even if they did, this shouldn't be done in
core).
Ref: 5d0f781062
dtrt-indent-hook-mapping-list entries now accept lists of variables.
This updates doom/set-indent-width to accommodate that.
Ref: jscheid/dtrt-indent@1986ad4e60
So they don't interfere with straight in odd, unpredictable ways. If
you *really* know what you're doing, set DOOMGITCONFIG to the path of a
gitconfig file. This envvar may be renamed in the future, however.
Close: #5640
Co-authored-by: M. Yas. Davoodeh <Davoodeh@users.noreply.github.com>
- Simplify doom-info and doom/info.
- Remove doom/copy-buffer-contents (may be moved later, but atm not very
useful).
- Remove doom/am-i-secure (this will later be replaced with CLI
commands)
These two variables have been the wrong way around for a while. In
preparation for splitting Doom into separate repos (its core and module
libraries), I've corrected them. doom-modules-version is a placeholder
and will be removed later.
I've also settled on -dev suffix for inter-release versions of Doom,
rather than alpha.
Emacs 29+ introduced the setopt macro for setting defcustom variables in
a way that takes setters and type-constraints into account, but it
eagerly pulls in a symbol's dependencies before doing so. To side-step
this silliness, use Doom's setq! macro instead. I'm tempted to alias
setopt to it...
Emacs 28 introduced the much faster native function
buffer-line-statistics, which makes so-long's job significantly less
expensive, so we can afford a larger threshold there.
Still, we gimp it a little if native-comp isn't present.
M-x doom/info marks modules that live in $DOOMDIR with &user, but what
if the user has moved their ~/.emacs.d into $DOOMDIR? As this seems to
happen often with Chemacs users, I've made this check a little more
procise.
BREAKING CHANGE: doom-set-jump-maybe-a would formerly set a jump point
if FN returns non-nil. That condition was changed to: if the current
buffer or cursor position have changed after FN.
Only affects users on Emacs HEAD (29+), where read-symbol-positions-list
has been removed. This is a temporary solution until the reference is
addressed upstream, in the elisp-ref package.
Ref: Wilfred/elisp-refs#35
Fix: #6063