From d34fb2bdc9ad3c4d8e98d55ff677405b7b6f1d4d Mon Sep 17 00:00:00 2001 From: Justin Burkett Date: Mon, 13 Jun 2016 09:45:27 -0400 Subject: [PATCH] Add imenu support for use-package forms Also add require forms and group both under menu "Package". --- lisp/use-package/use-package.el | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/lisp/use-package/use-package.el b/lisp/use-package/use-package.el index 7dba2b5dcf0..2076d5858fa 100644 --- a/lisp/use-package/use-package.el +++ b/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,26 @@ 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 + (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 -- 2.39.2