diff --git a/lisp/use-package/bind-key.el b/lisp/use-package/bind-key.el index 5d125199e70..95dc0c8a605 100644 --- a/lisp/use-package/bind-key.el +++ b/lisp/use-package/bind-key.el @@ -219,5 +219,7 @@ (display-buffer (current-buffer)))) (provide 'bind-key) - +;; Local Variables: +;; indent-tabs-mode: nil +;; End: ;;; bind-key.el ends here diff --git a/lisp/use-package/use-package.el b/lisp/use-package/use-package.el index 896edeade97..5b2cb03580d 100644 --- a/lisp/use-package/use-package.el +++ b/lisp/use-package/use-package.el @@ -284,8 +284,11 @@ (eval-when-compile (require 'cl)) +(declare-function package-installed-p 'package) +(declare-function el-get-read-recipe 'el-get) + (defgroup use-package nil - "A use-package declaration for simplifying your .emacs" + "A use-package declaration for simplifying your `.emacs'." :group 'startup) (defcustom use-package-verbose t @@ -294,15 +297,14 @@ :group 'use-package) (defcustom use-package-debug nil - "Whether to report more information, mostly regarding el-get" + "Whether to report more information, mostly regarding el-get." :type 'boolean :group 'use-package) (defcustom use-package-minimum-reported-time 0.01 "Minimal load time that will be reported" :type 'number - :group 'use-package - ) + :group 'use-package) (defmacro with-elapsed-timer (text &rest forms) `(let ((now ,(if use-package-verbose @@ -346,7 +348,7 @@ (defvar use-package-idle-forms nil) (defun use-package-start-idle-timer () - "Ensure that the idle timer is running" + "Ensure that the idle timer is running." (unless use-package-idle-timer (setq use-package-idle-timer (run-with-idle-timer @@ -354,16 +356,15 @@ 'use-package-idle-eval)))) (defun use-package-init-on-idle (form) - "Add a new form to the idle queue" + "Add a new form to the idle queue." (use-package-start-idle-timer) (if use-package-idle-forms (add-to-list 'use-package-idle-forms form t) - (setq use-package-idle-forms (list form)) - )) + (setq use-package-idle-forms (list form)))) (defun use-package-idle-eval() - "Start to eval idle-commands from the idle queue" + "Start to eval idle-commands from the idle queue." (let ((next (pop use-package-idle-forms))) (if next (progn @@ -376,9 +377,9 @@ (message "Failure on use-package idle. Form: %s, Error: %s" next e))) - ;; recurse after a bit + ;; recurse after a bit (when (sit-for 3) - (use-package-idle-eval))) + (use-package-idle-eval))) ;; finished (so far!) (cancel-timer use-package-idle-timer) (setq use-package-idle-timer nil)))) @@ -410,8 +411,7 @@ For full documentation. please see commentary. :defines Define vars to silence byte-compiler. :load-path Add to `load-path' before loading. :diminish Support for diminish package (if it's installed). -:idle adds a form to run on an idle timer -" +:idle adds a form to run on an idle timer" (let* ((commands (plist-get args :commands)) (pre-init-body (plist-get args :pre-init)) (init-body (plist-get args :init)) @@ -448,6 +448,7 @@ For full documentation. please see commentary. ensure))) (when package-name + (require 'package) (use-package-ensure-elpa package-name))) @@ -482,35 +483,38 @@ For full documentation. please see commentary. ,init-body))) - (flet ((init-for-commands - (func sym-or-list) - (let ((cons-list (if (and (consp sym-or-list) - (stringp (car sym-or-list))) - (list sym-or-list) - sym-or-list))) - (if cons-list - (setq init-body - `(progn - ,init-body - ,@(mapcar #'(lambda (elem) - (push (cdr elem) commands) - (funcall func elem)) - cons-list))))))) + (let ((init-for-commands + (lambda (func sym-or-list) + (let ((cons-list (if (and (consp sym-or-list) + (stringp (car sym-or-list))) + (list sym-or-list) + sym-or-list))) + (if cons-list + (setq init-body + `(progn + ,init-body + ,@(mapcar #'(lambda (elem) + (push (cdr elem) commands) + (funcall func elem)) + cons-list)))))))) - (init-for-commands #'(lambda (binding) - `(bind-key ,(car binding) - (quote ,(cdr binding)))) - (plist-get args :bind)) + (funcall init-for-commands + #'(lambda (binding) + `(bind-key ,(car binding) + (quote ,(cdr binding)))) + (plist-get args :bind)) - (init-for-commands #'(lambda (mode) - `(add-to-list 'auto-mode-alist - (quote ,mode))) - (plist-get args :mode)) + (funcall init-for-commands + #'(lambda (mode) + `(add-to-list 'auto-mode-alist + (quote ,mode))) + (plist-get args :mode)) - (init-for-commands #'(lambda (interpreter) - `(add-to-list 'interpreter-mode-alist - (quote ,interpreter))) - (plist-get args :interpreter))) + (funcall init-for-commands + #'(lambda (interpreter) + `(add-to-list 'interpreter-mode-alist + (quote ,interpreter))) + (plist-get args :interpreter))) `(progn ,@(mapcar @@ -605,5 +609,7 @@ For full documentation. please see commentary. (put 'use-package 'lisp-indent-function 1) (provide 'use-package) - +;; Local Variables: +;; indent-tabs-mode: nil +;; End: ;;; use-package.el ends here