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.
This removes +org/toggle-fold in favor of a more compatible alternative:
a org-tab-first-hook function that forces org-cycle only to toggle the
current subtree, and not cycle through all visibility states.
Before:
+ abcdefghi :: User can set *any* parameters of ivy-posframe with the help of
`ivy-posframe-parameters'.
+ xyz :: When non-nil, ivy-posframe will ignore prompt. This variable is useful
for `ivy-posframe-read-action'.
After
+ abcdefghi :: User can set *any* parameters of ivy-posframe with the help of
`ivy-posframe-parameters'.
+ xyz :: When non-nil, ivy-posframe will ignore prompt. This variable is useful
for `ivy-posframe-read-action'.
~/.doom.d/modules is now a full module tree, like ~/.emacs.d/modules.
Symlinks are no longer involved.
Private modules can now shadow Doom modules. e.g.
~/.doom.d/modules/lang/org will take precendence over
~/.emacs.d/modules/lang/org.
Also, made doom--*-load-path variables public (e.g. doom--site-load-path
=> doom-site-load-path), and rearranged the load-path for a 10-15%
startup boost.
Turns out the native TAB/Backtab/RET functionality in org already does
what I've replaced them with (somewhat).
Also, I discovered that the canonical way to modify TAB behavior was
through org-tab-first-hook. So, instead of replacing native
functionality, I've rewritten these keybinds to leverage them.
lang/org's initialization process is now split up into hooks on
org-load-hook. This approach is cleaner and easier to customize. I also
removed the escape binding in org-agenda-mode-map, as the popup system
makes it redundant.
During runtime, the new version of org (installed via ELPA) is added to
load-path, but this doesn't happen during compile-time. Wrap it in
eval-and-compile and that changes.
Now that the org ELPA archive has https support, we can add it to
package-archives. This fixes some 'org is unavailable' errors when
installing org packages that have declared earlier versions of org as
a dependency.
This also makes installing a newer version of org-mode much simpler.
Woo!