Restructures Doom's primary core files and entry points to prepare for
backports (from the new CLI) coming soon.
- Removes $EMACSDIR/init.el.
- Doom configures Emacs to ignore ~/.emacs and ~/_emacs files.
- Doom's bootstrapper for interactive sessions was moved out of core.el
and doom-initialize into doom-start.el. This change is preparation for
Doom's new profile system (coming soon™️), where this bootstrapper
will be dynamically generated.
- core.el and early-init.el have been reorganized, comment headers moved
around, and comments updated to reflect these changes.
use-package's :after keyword introduces some load order behavior that
complicates the user's ability to target it with either after! or
with-eval-after-load. Best to avoid it.
Ref: jwiegley/use-package#829
I change `user-emacs-directory' because most (if not all) packages --
even built-in ones -- abuse it exclusively to build paths for
storage/cache files (instead of correctly using
`locate-user-emacs-file'). This ensures your $EMACSDIR isn't littered
with data files *and* saves us the trouble of setting every
directory/file variable under the sun.
Granted, this introduces an edge case for any legitimate uses of the
variable (e.g. where the caller seeks to locate the user's initfiles),
but I've found no such uses in any of the packages I've audited for Doom
or elsewhere.
evil-collection-magit-section introduces some redundant keybinds on
number keys 1-4, so our hack to correct these keys needed an adjustment.
And by unbinding these keys at the source (magit-section-mode-map), we
don't have to do the same for each inheriting keymap (like
code-review-mode-map and magit-mode-map).
Ref: emacs-evil/evil-collection@e26c869735
Amend: 31519d393a
The precise semantics of use-package's :after keyword is janky (see
jwiegley/use-package#829) and, in the case of 992bd8f7e2, causes
subtle breakage. For one, the remappings in the following :init block
were deferred until embark loaded, so they weren't available at startup,
so they reverted to their old (often vastly inferior) predecessors, like
recentf-open-files instead of consult-recent-files.
Amend: 992bd8f7e2
NSM has better UX when an invalid/expired certificate is encountered: it
prompts the user to decide what to do with it. If gnutls-verify-error is
non-nil, gnutls either kills or hangs the connection. This is (mostly)
acceptable in noninteractive sessions, where I can more tightly control
outgoing connections, but not in interactive sessions where I stand a
higher chance of stepping on the user's toes instead.
Ref: emacs-circe/circe#405
Currently, embark-consult bindings don't get loaded if consult hasn't
been loaded yet, leading to missing embark actions until the first
manual consult load.
Corfu makes completion-in-region-function a local variable in buffers
where it is enabled, so when this form is evaluated in one of those said
buffers (such as opening a file with Emacs before accessing the
minibuffer), completion-in-region-function will just be set locally
there.
When evaluating from a buffer not visiting any file, file-truename would
error out since the argument it was fed is nil.
Fix: #6181Close: #6404
Ref: 7290f85cfd
Co-authored-by: Yoav Marco <ymarco@users.noreply.github.com>
BREAKING CHANGE: With 26.x support dropped, I've dropped:
- doom-plist-delete: use map-delete instead
- plist-delete!: use cl-callf + map-delete instead
- doplist: use (cl-loop for X on PLIST by #'cddr ...) instead
These were removed as part of an ongoing effort to eliminate
redundancies with built-in packages and reduce Doom's overall footprint.
'doom run' was launching out of Emacs' default
directories (~/.config/emacs and ~/.emacs.d) instead of the parent
directory of bin/doom. This commit corrects that, but is a temporary
measure until the CLI rewrite. I'm also not totally sure this will work
on Windows...
Fix: #6389