+ Defer replacement of 'size attribute in ALIST until popup opening
(makes :popup definitions a little faster).
+ Define/use +popup-define helper function (for internal use only!)
Occasionally, a keyboard-quit bubbles up from popup's buffer cleanup
process, causing all kinds of havoc; like killed term buffers (#436),
abrupt interrupting of the minibuffer, and the point jumping around.
This tries to fix this, but needs more testing!
Some popups may retain their mode-line. Especially popups whose buffers
are displayed before their mode or content is inserted (maybe
asynchronously). This change tries to tackle that; ensuring that
mode-line setting is more consistent.
Initialization of the popup rules now happens later (on
doom-init-ui-hook). The two new options are:
+ +popup-enable-fallback-rules: the popup module defines two catch-all
fallback rules for buffers that match "^ \\*" and "^\\*". By setting
this option to nil, you can disable that behavior, in case you want to
set them yourself.
+ +popup-enable-default-rules: setting this to nil disable all default
popup rules for various essential Emacs and Doom buffers that should be
treated as popups.
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)
A buffer can find other, unexpected ways to kill itself, so we set up
a kill-buffer-hook to make sure we're there to catch them. Not all
heroes wear capes.