Refactor def-setting!/set!; now evaluates its arguments on set!
This commit is contained in:
parent
5d1013d317
commit
f053980e85
6 changed files with 96 additions and 24 deletions
|
@ -36,18 +36,23 @@
|
|||
map)
|
||||
"Active keymap in popup windows.")
|
||||
|
||||
(def-setting! :popup (&rest rule)
|
||||
(def-setting! :popup (&rest rules)
|
||||
"Prepend a new popup rule to `shackle-rules'."
|
||||
(let ((pattern (car rule))
|
||||
(plist (cdr rule)))
|
||||
;; Align popups by default (error if this doesn't happen)
|
||||
(unless (plist-member plist :align)
|
||||
(plist-put plist :align t))
|
||||
;; Select popups by default
|
||||
(unless (or (plist-member plist :select)
|
||||
(plist-member plist :noselect))
|
||||
(plist-put plist :select t))
|
||||
(push (cons pattern plist) shackle-rules)))
|
||||
(if (not (-all-p 'listp rules))
|
||||
`(cl-pushnew ',rules shackle-rules :key 'car :test 'equal)
|
||||
(let (real-rules)
|
||||
(dolist (rule rules)
|
||||
(let ((pattern (car rule))
|
||||
(plist (cdr rule)))
|
||||
;; Align popups by default (error if this doesn't happen)
|
||||
(unless (plist-member plist :align)
|
||||
(plist-put plist :align t))
|
||||
;; Select popups by default
|
||||
(unless (or (plist-member plist :select)
|
||||
(plist-member plist :noselect))
|
||||
(plist-put plist :select t))
|
||||
(push (cons pattern plist) real-rules)))
|
||||
`(setq shackle-rules (append ',real-rules shackle-rules)))))
|
||||
|
||||
|
||||
;;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue