After studying set-language-environment, it seems to embody all these
lines. And without without it, non-English glyph rendering is very
slow (see https://emacs-china.org/t/org-mode/16918).
This may have other implications, however, so further testing is needed.
Changes +magit/quit to behave more like canonical
magit-mode-bury-buffer, but after burying/killing the last magit buffer
for the current repo, kill all the other buried ones too.
Also binds Q in magit to kill all magit buffers for the current repo.
doom-unicode-font, doom-variable-pitch-font, and the fontset settings
were loaded in the wrong order (before the theme, but should be after).
This means the psuedo 'doom' theme that stores these settings are being
loaded too early.
mixed-pitch-mode was toggled *before* text-scale-mode was. They both
preform face remapping, but use the same strategy to accomplish it, so
the less complex mode should go first. In this case, that's text-scale.
Already set in early-init.el, and deferred compilation is auto-disabled
in noninteractive sessions, so only matters to clients that load
early-init.el.
Also:
+ Refactors recentf config in general, revises/expands its code
comments, and uses :custom to set file variable (a new convention I'm
trying out).
+ recentf-auto-cleanup = 300 in daemon sessions, since the old strategy
of "cleanup on kill-emacs-hook" isn't so great for daemon users.
Emacs generates long file names for auto-save and backup files.
undo-fu-session and tramp are two more big offenders. This fix SHA1s
their file names so they never exceed 40 characters.
Will also affect any package that uses make-backup-file-name-1
directly (like undo-tree).
By deleting straight, the latest pinned version will be reinstalled on
the second part of the 'doom upgrade' process.
This is a clumsy fix for a catch 22 where using straight to update
straight would break due to backwards incompatibilities (see #4950).
This will do while we wait for the CLI rewrite.
+ Adds doom-emoji-fallback-font-families
+ Adds doom-symbol-fallback-font-families
+ Gives doom-unicode-font higher precedence (and sets it to nil by
default, since Emacs defaults to symbola already).
+ Store custom face settings in psuedo theme, rather than crowding the
user theme (which may be immortalized to custom-file, which we want to
avoid).
+ Now, after-setting-font-hook is guaranteed to fire after *all* fonts
are set, giving you a more reliable interface to add your own
font(set) modifications.
More testing is needed to ensure the patched fonts our ligatures modules
don't conflict with this change.
It's hardcoded to return t for symbols that end in any of '-command',
'-frame-alist', '-function', '-functions', '-hook', '-hooks', '-form',
'-forms', '-map', '-map-alist', '-mode-alist', '-program', or
'-predicate' -- which I think is excessive next to a safety check.
I'll trust that: if the user marks X as safe, and it isn't *explicitly*
marked risky, and it destroys the universe, then it's their fault, not
mine, not Emacs'.
Produces more helpful (and harder-to-miss) error messages when a hook
emits an error. Also advises run-hook when doom-debug-mode is active, so
errors in hooks (generally, major mode hooks) don't quietly go
unnoticed.
More in line with Emacs' built-in practice of storing a variable's
standard-value in a symbol property of the same name, with the added
benefit of less global state.
In older versions of Emacs (26.3 and below), the minibuffer would
replace the whole minibuffer's contents just to display error messages.
This was very frustrating for mundane errors, like the "text is
read-only" error you get when you press backspace at BOL.
Later versions of Emacs now display errors at the end of the minibuffer,
so this hack will no longer be needed when we drop 26.x support later
this year.
Added more major-mode keymappings to expose more of the functionality of
Alchemist.el to the user and generally make the Elixir mode a lot more
useful feeling.