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

@ -14,8 +14,7 @@
"Search on: "
(mapcar #'car +lookup-provider-url-alist)
nil t)))
(push (cons key provider)
(assq-delete-all key +lookup--last-provider))))))
(map-put +lookup--last-provider key provider)))))
(defun +lookup--symbol-or-region (&optional initial)
(cond (initial)
@ -227,8 +226,7 @@ for the provider."
(user-error "The search query is empty"))
(funcall +lookup-open-url-fn (format url (url-encode-url search))))
('error
(setq +lookup--last-provider
(assq-delete-all major-mode +lookup--last-provider)))))
(map-delete +lookup--last-provider major-mode))))
;;;###autoload
(defun +lookup/online-select ()

View file

@ -76,13 +76,11 @@ and enables `+popup-buffer-mode'."
"Merge `+popup-default-alist' and `+popup-default-parameters' with ALIST."
(if (not alist)
(setq alist +popup-default-alist)
(require 'map)
(let* ((alist (map-merge 'list +popup-default-alist alist))
(params (map-merge 'list
+popup-default-parameters
(cdr (assq 'window-parameters alist)))))
(setq alist (assq-delete-all 'window-parameters alist))
(push (cons 'window-parameters params) alist)
(map-put alist 'window-parameters params)
(nreverse alist))))
@ -151,7 +149,7 @@ current buffer."
(remove-hook 'doom-escape-hook #'+popup|close-on-escape)
(setq display-buffer-alist +popup--old-display-buffer-alist)
(dolist (prop +popup-window-parameters)
(assq-delete-all prop window-persistent-parameters)))))
(map-delete prop window-persistent-parameters)))))
;;;###autoload
(define-minor-mode +popup-buffer-mode

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)))