+ 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.
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)
This makes quickrun, *doom eval* and *Pp Eval Output* buffers behave
better.
Eval output buffers should a) shrink themselves to the size of their
output (within reason), b) *not* grab focus, and c) be easy to close
from afar with C-g/Escape.
Gotchas:
1. Quickrun gets output asynchronously, so we shrink it on
quickrun-after-run-hook, not in the popup rule.
2. *doom eval* and *Pp Eval Output* opens with its output ready, so the
popup system may shrink those to fit.
3. *doom eval* and *Pp Eval Output* handle window selection themselves.
Let them by setting the select window parameter to #'ignore.