feature/popup: add :ignore support to :popup

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 commit is contained in:
Henrik Lissner 2018-01-09 17:42:08 -05:00
parent bfcbb9ca01
commit a4e22d48b8
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -121,20 +121,23 @@ ALIST supports one custom parameter: `size', which will resolve to
`window-height' or `window-width' depending on `side'." `window-height' or `window-width' depending on `side'."
`(let ((alist ,alist) `(let ((alist ,alist)
(parameters ,parameters)) (parameters ,parameters))
,(when alist (if (eq alist :ignore)
`(when-let* ((size (cdr (assq 'size alist))) (push (list ,condition nil) +popup--display-buffer-alist)
(side (or (cdr (assq 'side (append alist +popup-default-alist))) 'bottom))) ,(when alist
(map-delete alist 'size) `(when-let* ((size (cdr (assq 'size alist)))
(map-put alist (if (memq side '(left right)) (side (or (cdr (assq 'side (append alist +popup-default-alist)))
'window-width 'bottom)))
'window-height) (map-delete alist 'size)
size))) (map-put alist (if (memq side '(left right))
(prog1 (push (append (list ,condition '(+popup-buffer)) 'window-width
alist 'window-height)
(list (cons 'window-parameters parameters))) size)))
+popup--display-buffer-alist) (prog1 (push (append (list ,condition '(+popup-buffer))
(when (bound-and-true-p +popup-mode) alist
(setq display-buffer-alist +popup--display-buffer-alist))))) (list (cons 'window-parameters parameters)))
+popup--display-buffer-alist)))
(when (bound-and-true-p +popup-mode)
(setq display-buffer-alist +popup--display-buffer-alist))))
;; ;;