custom--inhibit-theme-enable is non-nil by default in Emacs 27, which
inhibits uses of `custom-theme-set-faces` when modifying any theme other
than 'user.
- No longer translates :fetcher to :host. Update your package!
declaration people!
- Now evaluates the values for properties (except for :recipe IF it is a
list whose CAR passes keywordp -- for backwards compatibility).
- Throws error if an invalid property is used for a package!'s :recipe
We're focusing on ripgrep so we can iterate on search functionality in
Doom quicker. There is nothing the other search backends can do that
ripgrep can't. It is now a hard dependency for Doom.
Highlights:
- 'doom purge' now purges builds, elpa packages, and repos by default.
Regrafting repos is now opt-in with the -g/--regraft switches.
Negation flags have been added for elpa/repos: -e/--no-elpa and
-r/--no-repos.
- Removed 'doom rebuild' (it is now just 'doom build' or 'doom b').
- Removed 'doom build's -f flag, this is now the default. Added the -r
flag instead, which only builds packages that need rebuilding.
- 'doom update' now updates packages synchronously, but produces more
informative output about the updating process.
- Straight can now prompt in batch mode, which resolves a lot of issues
with 'doom update' (and 'doom upgrade') freezing indefinitely or
throwing repo branch errors.
- 'bin/doom's switches are now positional. Switches aimed at `bin/doom`
must precede any subcommands. e.g.
Do: 'doom -yd upgrade'
Don't do: 'doom upgrade -yd'
- Moved 'doom doctor' from bin/doom-doctor to core/cli/doctor, and
integrated core/doctor.el into it, as to avoid naming conflicts
between it and Emacs doctor.
- The defcli! macro now has a special syntax for declaring flags, their
arguments and descriptions.
Addresses #1981, #1925, #1816, #1721, #1322
If lexical-binding isn't enabled (with ';; -*- lexical-binding: t; -*-'
at the top of your private config), custom-set-theme! and
custom-theme-set-faces! throw this error. Since these macros are
commonly used in user configs, where I can't police lexical-binding,
I've refactored it to not rely on it.
- doom/increase-font-size no longer resets the font when resizing back
to 0 (causing an inelegant flash of the frame).
- doom/reset-font-size will now reset text-scale, as well, if it is
being used.
- doom/*-font-size commands have been changed to only affect the current
frame.
- doom-big-font-mode will now affect all frames (since minor modes can't
be frame-local).
Fixes an issue where package! declarations were read unconditionally at
compile time, whether or not they were on a reachable code path. e.g.
evil is always disabled by:
(when nil
(package! evil :disable t))