From 96e8e3cc19c33b63bd9569131c765f18df82af66 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Thu, 29 Mar 2018 00:25:42 -0400 Subject: [PATCH] feature/popup: add with-popup-rules! macro --- modules/feature/popup/autoload.el | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/modules/feature/popup/autoload.el b/modules/feature/popup/autoload.el index 7dabc64b8..7f8541924 100644 --- a/modules/feature/popup/autoload.el +++ b/modules/feature/popup/autoload.el @@ -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