Function: use-package-handler/:catch
use-package-handler/:catch is a byte-compiled function defined in
use-package-core.el.gz.
Signature
(use-package-handler/:catch NAME KEYWORD ARG REST STATE)
Source Code
;; Defined in /usr/src/emacs/lisp/use-package/use-package-core.el.gz
(defun use-package-handler/:catch (name keyword arg rest state)
(let* ((context (cl-gentemp "use-package--warning")))
(cond
((not arg)
(use-package-process-keywords name rest state))
((eq arg t)
`((defvar ,context
#'(lambda (keyword err)
(let ((msg (format "%s/%s: %s" ',name keyword
(error-message-string err))))
,@(when (eq use-package-verbose 'debug)
`((with-current-buffer
(get-buffer-create "*use-package*")
(goto-char (point-max))
(insert "-----\n" msg ,use-package--form)
(emacs-lisp-mode))
(setq msg
(concat msg
" (see the *use-package* buffer)"))))
(display-warning 'use-package msg :error))))
,@(let ((use-package--hush-function
(apply-partially #'use-package-hush context)))
(funcall use-package--hush-function keyword
(use-package-process-keywords name rest state)))))
((functionp arg)
`((defvar ,context ,arg)
,@(let ((use-package--hush-function
(apply-partially #'use-package-hush context)))
(funcall use-package--hush-function keyword
(use-package-process-keywords name rest state)))))
(t
(use-package-error "The :catch keyword expects 't' or a function")))))