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:
parent
2eeb6ce0d9
commit
392f04446f
7 changed files with 27 additions and 42 deletions
|
@ -205,7 +205,7 @@ Used by `doom//packages-install'."
|
|||
(when (and (not (package-installed-p name))
|
||||
(quelpa-setup-p)
|
||||
(assq name quelpa-cache))
|
||||
(setq quelpa-cache (assq-delete-all name quelpa-cache))
|
||||
(map-delete quelpa-cache name)
|
||||
(quelpa-save-cache)
|
||||
(let ((path (expand-file-name (symbol-name name) quelpa-build-dir)))
|
||||
(when (file-exists-p path)
|
||||
|
@ -304,7 +304,7 @@ package.el as appropriate."
|
|||
(unless (quelpa-setup-p)
|
||||
(error "Could not initialize QUELPA"))
|
||||
(when (assq name quelpa-cache)
|
||||
(setq quelpa-cache (assq-delete-all name quelpa-cache))
|
||||
(map-delete quelpa-cache name)
|
||||
(quelpa-save-cache)
|
||||
(setq quelpa-p t))
|
||||
(package-delete (cadr (assq name package-alist)) force-p)
|
||||
|
|
|
@ -146,8 +146,7 @@ extension, try to guess one."
|
|||
;; editorconfig to ignore indentation. I prefer dynamic indentation support
|
||||
;; built into Emacs.
|
||||
(dolist (mode '(emacs-lisp-mode lisp-mode))
|
||||
(setq editorconfig-indentation-alist
|
||||
(assq-delete-all mode editorconfig-indentation-alist)))
|
||||
(map-delete editorconfig-indentation-alist mode))
|
||||
|
||||
(defvar whitespace-style)
|
||||
(defun doom|editorconfig-whitespace-mode-maybe (&rest _)
|
||||
|
|
|
@ -463,12 +463,8 @@ Accepts the following properties:
|
|||
(when-let* ((val (plist-get plist prop)))
|
||||
(plist-put plist prop (eval val))))
|
||||
`(progn
|
||||
(when ,(and pkg-pin t)
|
||||
(cl-pushnew (cons ',name ,pkg-pin) package-pinned-packages
|
||||
:test #'eq :key #'car))
|
||||
(when ,(and old-plist t)
|
||||
(assq-delete-all ',name doom-packages))
|
||||
(push ',(cons name plist) doom-packages))))
|
||||
,(if (and pkg-pin t) `(map-put package-pinned-packages ',name ,pkg-pin))
|
||||
(map-put doom-packages ',name ',plist))))
|
||||
|
||||
(defmacro depends-on! (module submodule)
|
||||
"Declares that this module depends on another.
|
||||
|
|
|
@ -119,25 +119,20 @@ default/fallback account."
|
|||
;; However, the real magic happens in `+email|gmail-fix-flags'.
|
||||
;;
|
||||
;; Gmail will handle the rest.
|
||||
(setq mu4e-marks (assq-delete-all 'delete mu4e-marks))
|
||||
(setq mu4e-marks (assq-delete-all 'trash mu4e-marks))
|
||||
(push '(trash :char ("d" . "▼")
|
||||
(defun +email--mark-seen (docid msg target)
|
||||
(mu4e~proc-move docid (mu4e~mark-check-target target) "+S-u-N"))
|
||||
|
||||
(map-delete mu4e-marks 'delete)
|
||||
(map-put mu4e-marks 'trash
|
||||
(list :char '("d" . "▼")
|
||||
:prompt "dtrash"
|
||||
:dyn-target (lambda (target msg) (mu4e-get-trash-folder msg))
|
||||
:action
|
||||
(lambda (docid msg target)
|
||||
(mu4e~proc-move docid (mu4e~mark-check-target target) "+S-u-N")))
|
||||
mu4e-marks)
|
||||
|
||||
:action #'+email--mark-seen))
|
||||
;; Refile will be my "archive" function.
|
||||
(setq mu4e-marks (assq-delete-all 'refile mu4e-marks))
|
||||
(push '(refile :char ("r" . "▶")
|
||||
:prompt "refile"
|
||||
(map-put mu4e-marks 'refile
|
||||
(list :char '("r" . "▶") :prompt "refile"
|
||||
:show-target (lambda (target) "archive")
|
||||
:action
|
||||
(lambda (docid msg target)
|
||||
(mu4e~proc-move docid (mu4e~mark-check-target target) "+S-u-N")))
|
||||
mu4e-marks)
|
||||
:action #'+email--mark-seen))
|
||||
|
||||
;; This hook correctly modifies gmail flags on emails when they are marked.
|
||||
;; Without it, refiling (archiving), trashing, and flagging (starring) email
|
||||
|
|
|
@ -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 ()
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue