Add new option use-package-idle-interval

* use-package.el (use-package-idle-interval): new defcustom
(use-package-start-idle-timer): use it
(use-package-idle-eval): use it
* README.md: document it

This addresses bug https://github.com/jwiegley/use-package/issues/77
This commit is contained in:
Nicolas Richard 2014-02-16 11:59:59 +01:00
parent db9cba9a31
commit 0ab0d77691

View file

@ -58,6 +58,11 @@
:type 'number :type 'number
:group 'use-package) :group 'use-package)
(defcustom use-package-idle-interval 3
"Time to wait when using :idle in a `use-package' specification."
:type 'number
:group 'use-package)
(defmacro use-package-with-elapsed-timer (text &rest body) (defmacro use-package-with-elapsed-timer (text &rest body)
(declare (indent 1)) (declare (indent 1))
(let ((nowvar (make-symbol "now"))) (let ((nowvar (make-symbol "now")))
@ -82,7 +87,7 @@
(unless use-package-idle-timer (unless use-package-idle-timer
(setq use-package-idle-timer (setq use-package-idle-timer
(run-with-idle-timer (run-with-idle-timer
3 t use-package-idle-interval t
'use-package-idle-eval)))) 'use-package-idle-eval))))
(defun use-package-init-on-idle (form priority) (defun use-package-init-on-idle (form priority)
@ -129,7 +134,7 @@ Return nil when the queue is empty."
"Failure on use-package idle. Form: %s, Error: %s" "Failure on use-package idle. Form: %s, Error: %s"
next e))) next e)))
;; recurse after a bit ;; recurse after a bit
(when (sit-for 3) (when (sit-for use-package-idle-interval)
(use-package-idle-eval))) (use-package-idle-eval)))
;; finished (so far!) ;; finished (so far!)
(cancel-timer use-package-idle-timer) (cancel-timer use-package-idle-timer)