Variable: use-package-merge-key-alist

use-package-merge-key-alist is a customizable variable defined in use-package-core.el.gz.

Value

((:if lambda
      (new old)
      `(and ,new ,old))
 (:after lambda
	 (new old)
	 `(:all ,new ,old))
 (:defer lambda
	 (new old)
	 old)
 (:bind lambda
	(new old)
	(append new
		(list :break)
		old)))

Documentation

Alist of keys and the functions used to merge multiple values.

For example, if the following form is provided:

  (use-package foo :if pred1 :if pred2)

Then based on the above defaults, the merged result will be:

  (use-package foo :if (and pred1 pred2))

This is done so that, at the stage of invoking handlers, each handler is called only once.

Source Code

;; Defined in /usr/src/emacs/lisp/use-package/use-package-core.el.gz
(defcustom use-package-merge-key-alist
  '((:if    . (lambda (new old) `(and ,new ,old)))
    (:after . (lambda (new old) `(:all ,new ,old)))
    (:defer . (lambda (new old) old))
    (:bind  . (lambda (new old) (append new (list :break) old))))
  "Alist of keys and the functions used to merge multiple values.
For example, if the following form is provided:

  (use-package foo :if pred1 :if pred2)

Then based on the above defaults, the merged result will be:

  (use-package foo :if (and pred1 pred2))

This is done so that, at the stage of invoking handlers, each
handler is called only once."
  :type `(repeat
          (cons (choice :tag "Keyword"
                        ,@(mapcar #'(lambda (k) (list 'const k))
                                  use-package-keywords)
                        (const :tag "Any" t))
                function))
  :group 'use-package)