Add delq! and pushnew! macros

And move projectile configs to their respective modules (and out of
package configs).
This commit is contained in:
Henrik Lissner 2019-04-08 23:01:30 -04:00
parent f934f38627
commit 742687a51e
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
5 changed files with 33 additions and 21 deletions

View file

@ -135,6 +135,20 @@ Accepts the same arguments as `message'."
(defalias 'lambda! 'λ!)
(defmacro pushnew! (place &rest values)
"Like `cl-pushnew', but will prepend VALUES to PLACE.
The order VALUES is preserved."
`(dolist (--value-- (nreverse (list ,@values)))
(cl-pushnew --value-- ,place)))
(defmacro delq! (elt list &optional fetcher)
"Delete ELT from LIST in-place."
`(setq ,list
(delq ,(if fetcher
`(funcall ,fetcher ,elt ,list)
elt)
,list)))
(defmacro defer-until! (condition &rest body)
"Run BODY when CONDITION is true (checks on `after-load-functions'). Meant to
serve as a predicated alternative to `after!'."