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 commit adds bin/doom, which acts as the middle man that make once
was (and will stay for a while, though the documentation will shift away
from using it). It does everything the previous make interface did, but
is faster and more flexible. bin/doom should eventually replace the
makefile.
bin/doom also makes it easier to run Doom outside of ~/.emacs.d and
~/.doom.d with, for example:
bin/doom run -p ~/.other.doom.d/ -e ~/.other.emacs.d
bin/doom.cmd is included for Windows users, but I don't recommend using
it yet. It hasn't been tested nor have I ever written a batch script
before.
Also update init.example.el with new defaults.
+workspace/save-session without a name = autosaves the current session.
Doing so now disables autosaving on kill-emacs, otherwise your autosave
would be overwritten when closing Emacs.
The frame buffer-predicate wasn't discriminating against buffers that
were in other perspectives, allowing you to `next-buffer` into them.
UNACCEPTABLE.
doom/{next,previous}-buffer was implemented so that these commands could
skip over unreal buffers, and land us on either a real one or the
dashboard. Using the frame's buffer-predicate parameter accomplishes
exactly this, natively.
+ Fix recursive find-file-in-project prompt with counsel-projectile.
+ Fix duplicate-workspace error (just switches to that workspace, rather
than trying to create one).
+ Fix dashboard replacing current buffer when switching to
a pre-existing project workspace.
Because persp-mode initializes differently (and later) in daemon/noninteractive
Emacs, +workspaces|init would fail while trying to use persp-mode features in a
broken state.
+ Rewrite projectile integration.
+ Fix per-frame workspaces not cleaning up after itself when an
frame-associated workspace (or its frame) is destroyed.
+ Alias +workspace-p to perspective-p instead of persp-p (which isn't as
accurate, because it counts nil as a valid perspective).
+ Extract orphaned-buffer list functionality in +workspace-buffer-list
into seperate function: +workspace-orphaned-buffer-list.
+ Allow toggle-debug-on-error to catch workspace errors.
+ Remove +workspace/kill-session-and-quit (never used)
+ Ensure persp-mode is loaded as late as possible.
persp-mode provides the following hooks already (among many others):
+ persp-{before,after}-switch-functions
+ persp-renamed-functions
+ persp-created-functions
+ persp-before-kill-functions
This makes +workspace-change-hook redundant.