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
setenv treats the TZ (and only TZ) envvar especially, so we have to too,
since I'm intentionally avoiding iteratively setenv'ing envvars to avoid
the unnecessary extra work it does.
Fix: #5760
Reduce cases where native-comp procedures were executed in
non-native-comp contexts (somehow).
Also:
- Adds a NATIVECOMP constant for statically detecting the feature.
- Remove native-comp-* -> comp-* aliases (Emacs HEAD has long since
moved on from these).
- Add 'no-native-compile: t' to autoloads file.
The message simply test for the "not-a-version-yet" patch number and
displays an explanation to prepare users for raised error frequency and
having a backup version of Emacs if they do not want to deal with
issues.
doom--fix-broken-smie-modes-a forces dtrt-indent-mode to expect exactly
one argument so an error will be raised when the latter is turned on
without args programmatically in lisp.
This generalizes and cleans up the linter API so that it can be used in
other Doom projects (or CLI commands, like our WIP changelog generator).
Besides that, our git's commit conventions saw two changes:
- A new 'Amend' keyword, for indicating a commit corrects an earlier,
recent one. This should be used to omit (or merge) commits in the eyes
of the changelog generator.
- Trailers must now follow the 'KEY: VALUE' format, which is supported
OOTB by 'git interpret-trailers' and makes scraping them much eacher.
Before, omitting the colon was mandatory, this is no longer the case.
Other highlights:
- For linter rules: replaced :footer and :refs keys with :trailers (a
string->string alist). Invalid trailers will be left in BODY's tail.
- Added a linter for colon delimiters in commit trailers (along with
other formatting checks, like capitalization and one-per-line checks).
While lists are technically cons cells, cons cells don't have all the
properties of lists, so doom-enlist shouldn't treat it as one.
Before:
(doom-enlist '(a . b)) #=> (a . b)
After:
(doom-enlist '(a . b)) #=> ((a . b))
Before this fix:
(fn! (x &key y z))
;; implies
(fn! (&key x &allow-other-keys)).
But
(fn! (x (&key y) &key z))
;; would not imply
(fn! (x (&key y &allow-other-keys) &key z &allow-other-keys)).