Commit dcbe466684c0

Vincent Demeester <vincent@sbr.pm>
2016-06-21 16:38:29
Update use-package
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
1 parent 20d31a0
Changed files (1)
.emacs.d
lisp
use-package
.emacs.d/lisp/use-package/use-package.el
@@ -44,6 +44,7 @@
 (require 'diminish nil t)
 (require 'bytecomp)
 (eval-when-compile (require 'cl))
+(eval-when-compile (require 'regexp-opt))
 
 (declare-function package-installed-p 'package)
 
@@ -167,6 +168,29 @@ then your byte-compiled init file is as minimal as possible."
   :type 'boolean
   :group 'use-package)
 
+(defcustom use-package-enable-imenu-support nil
+  "If non-nil, adjust `lisp-imenu-generic-expression' to include
+support for finding `use-package' and `require' forms.
+
+Must be set before loading use-package."
+  :type 'boolean
+  :group 'use-package)
+
+(when use-package-enable-imenu-support
+  ;; Not defined in Emacs 24
+  (defvar lisp-mode-symbol-regexp
+    "\\(?:\\sw\\|\\s_\\|\\\\.\\)+")
+  (add-to-list
+   'lisp-imenu-generic-expression
+   (list "Package"
+         (purecopy (concat "^\\s-*("
+                           (eval-when-compile
+                             (regexp-opt
+                              '("use-package" "require")
+                              t))
+                           "\\s-+\\(" lisp-mode-symbol-regexp "\\)"))
+         2)))
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; Utility functions
@@ -477,9 +501,7 @@ manually updated package."
   (if (package-installed-p package)
       t
     (if (or (assoc package package-archive-contents) no-refresh)
-        (if (boundp 'package-selected-packages)
-            (package-install package t)
-            (package-install package))
+        (package-install package)
       (progn
         (package-refresh-contents)
         (use-package-ensure-elpa package t)))))
@@ -911,7 +933,7 @@ deferred until the prefix key sequence is pressed."
         (lambda (feat)
           `(eval-after-load
                (quote ,feat)
-             (quote (require (quote ,name)))))
+             (quote (require (quote ,name) nil t))))
         features)))
 
 (defun use-package-handler/:after (name keyword arg rest state)