General refactor (use map.el more)

+ map-delete is shorter and faster than assq-delete-all
+ map-put is simpler than the delete-then-set workflow
+ map-merge is great for merging default and user settings
This commit is contained in:
Henrik Lissner 2018-01-06 23:54:12 -05:00
parent 2eeb6ce0d9
commit 392f04446f
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
7 changed files with 27 additions and 42 deletions

View file

@ -100,14 +100,13 @@ ALIST supports one custom parameter: `size', which will resolve to
`(let ((alist ,alist)
(parameters ,parameters))
,(when alist
'(when-let* ((size (cdr (assq 'size alist))))
(setq alist (assq-delete-all 'size alist))
(push (cons (pcase (cdr (or (assq 'side alist)
(assq 'side +popup-default-alist)))
((or `left `right) 'window-width)
(_ 'window-height))
size)
alist)))
`(when-let* ((size (cdr (assq 'size alist)))
(side (cdr (assq 'side (append alist +popup-default-alist)))))
(map-delete alist 'size)
(map-put alist (if (memq side '(left right))
'window-width
'window-height)
size)))
(prog1 (push (append (list ,condition '(+popup-buffer))
alist
(list (cons 'window-parameters parameters)))