]> git.eshelyaron.com Git - emacs.git/commitdiff
Improve imenu support
authorJustin Burkett <justin@burkett.cc>
Wed, 15 Jun 2016 02:37:56 +0000 (22:37 -0400)
committerJustin Burkett <justin@burkett.cc>
Thu, 16 Jun 2016 02:54:15 +0000 (22:54 -0400)
Instead of using defvar for lisp-mode-symbol-regexp, wait until
lisp-mode is loaded and check for its existence to avoid making
use-package the place where this variable is declared.

lisp/use-package/use-package.el

index 8c47678117de0aeea29b4e37543bc96a354cb774..59f26158740902ed40673029d2a9025b79b886c5 100644 (file)
@@ -177,19 +177,17 @@ Must be set before loading use-package."
   :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)))
+  (eval-after-load 'lisp-mode
+    `(let ((sym-regexp (or (bound-and-true-p lisp-mode-symbol-regexp)
+                           "\\(?:\\sw\\|\\s_\\|\\\\.\\)+")))
+       (add-to-list
+        'lisp-imenu-generic-expression
+        (list "Packages"
+              (concat "^\\s-*("
+                      ,(eval-when-compile
+                         (regexp-opt '("use-package" "require") t))
+                      "\\s-+\\(" sym-regexp "\\)")
+              2)))))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;