]> git.eshelyaron.com Git - emacs.git/commitdiff
Don't auto-defer if the package itself was given to :load
authorJohn Wiegley <johnw@newartisans.com>
Tue, 5 Dec 2017 23:47:53 +0000 (15:47 -0800)
committerJohn Wiegley <johnw@newartisans.com>
Tue, 5 Dec 2017 23:47:53 +0000 (15:47 -0800)
Otherwise, we'd be senselessly waiting for the package to load.

lisp/use-package/use-package-core.el
test/lisp/use-package/use-package-tests.el

index 9d55074b19d1ff79ab48406543adacb93d61855d..729696abf8967303c6dc173475a2f55459cca714 100644 (file)
@@ -552,6 +552,10 @@ extending any keys already present."
     ;; Certain keywords imply :defer, if :demand was not specified.
     (when (and (not (plist-member args :demand))
                (not (plist-member args :defer))
+               (not (or (equal '(t) (plist-get args :load))
+                        (equal (list (use-package-as-string name))
+                               (mapcar #'use-package-as-string
+                                       (plist-get args :load)))))
                (cl-some #'identity
                         (mapcar (apply-partially #'plist-member args)
                                 use-package-deferring-keywords)))
index 1169de5147a3757c557affed9802685c99c382b2..cbfb98da0c035c02f5bd54a7ba77033f570ec3b7 100644 (file)
         (ignore
          (add-hook 'hook-special #'fun))))))
 
+(ert-deftest use-package-test/:hook-5 ()
+  (match-expansion
+   (use-package erefactor
+     :load-path "foo"
+     :after elisp-mode
+     :load t
+     :hook (emacs-lisp-mode
+            . (lambda ()
+                (bind-key "\C-c\C-v" erefactor-map emacs-lisp-mode-map))))
+   `(progn
+      (eval-and-compile
+        (add-to-list 'load-path ,(pred stringp)))
+      (eval-after-load 'elisp-mode
+        '(progn
+           (require 'erefactor nil nil)
+           (ignore
+            (add-hook
+             'emacs-lisp-mode-hook
+             #'(lambda nil
+                 (bind-key "\ 3\16" erefactor-map emacs-lisp-mode-map)))))))))
+
 (ert-deftest use-package-test-normalize/:custom ()
   (flet ((norm (&rest args)
                (apply #'use-package-normalize/:custom