feature/popup: add with-popup-rules! macro

This commit is contained in:
Henrik Lissner 2018-03-29 00:25:42 -04:00
parent 7590c46f6c
commit 96e8e3cc19
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -386,6 +386,18 @@ the message buffer in a popup window."
;; Macros
;;
;;;###autoload
(defmacro with-popup-rules! (rules &rest body)
"Evaluate BODY with popup RULES. RULES is a list of popup rules. Each rule
should match the arguments of `+popup-define' or the :popup setting."
(declare (indent defun))
`(let ((+popup--display-buffer-alist +popup--old-display-buffer-alist)
display-buffer-alist)
,@(cl-loop for rule in rules collect `(+popup-define ,@rule))
(when (bound-and-true-p +popup-mode)
(setq display-buffer-alist +popup--display-buffer-alist))
,@body))
;;;###autoload
(defmacro without-popups! (&rest body)
"Run BODY with a default `display-buffer-alist', ignoring the popup rules set