But only if undo-tree-visualizer-diff is disabled. If it's enabled,
undo-tree has its own opinions on how to manage the two windows which
don't mesh well with our popup manager, so we leave undo-tree to its
devices.
Fix: #5617
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))
From now on Doom will enforce two conventions for its org files for
consistency's sake:
- Lower-case meta-lines in org files, like #+begin_src, #+name, or
#+end_quote (only exception are the top-level ones, like #+TITLE and
#+STARTUP).
- Use 'emacs-lisp' as the lang specifier for elisp blocks rather than
'elisp'. Emacs doesn't natively recognize the latter.
This will be reflected in our rewritten docs/*.org and module
README.org's.
Because this data contains cached session data, it makes more sense to
have it under `~/.emacs.d/.local/cache` so that it is clear that it can
and should be removed when debugging and testing LSP using modules.
Fix#5649
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)).
Change (and simplify) the load order of Doom's dashboard and persp-mode
so that the dashboard always initializes later. This and 0ab6aba should
fix#5643.
Fix#5643
Ref 0ab6aba056
Unnecessary redraws can add 0.2-0.4s to startup times in some cases,
especially where site-files are involved (which spam *Messages* with
"Loading X..." messages; which force redraws).
May also indirectly fix#5643 by deferring redisplay (and therefore
window-buffer-change-functions, which triggers doom-init-ui-hook, which
triggers both Doom's dashboard and persp-mode).
Also removes a redundant set-language-environment call.
Ref #5643
68d8364ae added a deprecation notice to any use of a
MODE-local-vars-hook, instructing users to use after-MODE-hook instead,
however this hasn't been decided yet and shouldn't have made it into
68d8364ae.
Ref 68d8364aeaFix#5612
By displaying them pre-init:
a) eshell will not have loaded, ensuring any user-popup rules in
an (after! eshell ...) block don't load in time for the first eshell
popup,
b) Popup predicate functions don't have access to the full state of the
buffer, if needed.
Fixes a regression introduced in 0bb4d4dfc, which changed how
doom-switch-buffer-hook works, but makes it fire too early during
startup, eagerly loading packages that wait for the first interactively
opened buffer. This moves doom-init-ui-h to
window-buffer-change-functions, which fires once at the end of startup,
when any buffer is displayed for the first time in the session.
Ref 0bb4d4dfcb