load!'s first argument is no longer a symbol (that will cause
void-variable errors now) to save on unnecessary interning and simplify
compile-time logic. It accepts any valid form that evaluates to a string
now.
If you use load!, you need to change its argument to a string!
e.g. (load! +my-module) => (load! "+my-module")
Now that we are loading package autoloads files (as part of the
generated doom-package-autoload-file when running make autoloads), many
:commands properties are redundant. In fact, many def-package! blocks
are redundant.
In some cases, we can do without a config.el file entirely, and can move
into the autoloads file or rely entirely on package autoloads.
Also, many settings have been moved in their module's autoloads files,
which makes them available ASAP; their use no longer depends on module
load order.
This gained me a modest ~10% boost in startup speed.
Now that auth-password-store has been renamed to auth-source-pass and it matches
the same feature included in emacs 26 under the same name we don't need custom
checks and package loading.
This is a breaking change! Update your :popup settings. Old ones will
throw errors!
Doom's new popup management system casts off its shackles (hur hur) and
replaces them with the monster that is `display-buffer-alist`, and
window parameters.
However, this is highly experimental! Expect edge cases. Particularly
with org-mode and magit (or anything that does its own window
management).
Relevant to #261, #263, #325
+ Moved unit tests out of tests/ and into their respective modules.
+ Rewrite makefile and added these tasks:
+ <MODULE>/<SUBMODULE> -- byte-compile a specific module
+ test:<MODULE>/<SUBMODULE> -- runs tests for a specific module
+ testi -- run tests in an interactive session of Emacs (WIP)
+ run -- opens an Emacs session with this config; useful when it is in
a non-standard location.