+ Fix default-directory not being set properly when switching
perspectives. ie. Add persp-mode integration (#347, #360)
+ Ensure dashboard initializes properly, at the right time to ensure
benchmark is properly reported (fix#361)
+ 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.
The package wasn't set up properly to autoload until evil-snipe did,
making its functionality inaccessible without an explicit (require
'evil-easymotion)
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.
Now when saving, you get a message like:
"modules/feature/evil/config.el" 435L, 16678C written
Instead of
Wrote /home/hlissner/work/conf/doom-emacs/modules/feature/evil/config.el
PEDANTRY INTENSIFIES
Adds support for `slot` and `vslot`, allowing for two dimensional
control over where popups may spawn. Highly experimental.
It's upsetting that I have to set `window--sides-inhibit-check`, I'd
like to find a way around that, if possible.
Originally, I built the load-path with site-lisp paths first, then
packages. There was a modest ~10% startup boost doing this, because
there were considerably more site packages loaded at startup than
plugins.
However, this meant built-in packages would get precedence over plugins,
which is undesirable. In org's case, I simply modified the load-path
in lang/org/init.el. However, this issue has cropped up again in #340.
Evidently, that 10% boost may not be worth the risk it imposes, so I've
rearranged the load-path with packages first.
Allows you to ignore certain buffers. Helpful for plugins that manage
their own windows, like magit.
To use:
(set! :popup "^\\*magit" :ignore)
Relevant to #337
This is experimental and disabled by default. It uses a slightly more
primitive backend that will stack popups away from the edge of the
frame. This will need more work to take window-slot into account.
To use it:
(remove-hook '+popup-display-buffer-actions 'display-buffer-in-side-window)
(add-hook '+popup-display-buffer-actions #'+popup-display-buffer t)