From e838dc80eefb1fac37eb8033979ee8efcd6f9182 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt Date: Mon, 9 Sep 2019 14:34:52 +0200 Subject: [PATCH] Lisp: Add "mode", "command" and "parenscript" to Imenu. --- .emacs.d/lisp/init-lisp.el | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.emacs.d/lisp/init-lisp.el b/.emacs.d/lisp/init-lisp.el index 70b388b1..2178d513 100644 --- a/.emacs.d/lisp/init-lisp.el +++ b/.emacs.d/lisp/init-lisp.el @@ -3,6 +3,22 @@ (require 'init-lispy) (require 'init-rainbow) +(defun ambrevar/enhance-imenu-lisp (&rest keywords) + "Add define-KEYWORD to `lisp-imenu-generic-expression'." + (dolist (keyword keywords) + (add-to-list + 'lisp-imenu-generic-expression + (list (purecopy (concat (capitalize keyword) "s")) + (purecopy (concat "^\\s-*(" + (eval-when-compile + (regexp-opt + (list (concat "define-" keyword)) + t)) + "\\s-+\\(" lisp-mode-symbol-regexp "\\)")) + 2)))) +;; Following defines are common, e.g. in Next. +(ambrevar/enhance-imenu-lisp "mode" "command" "parenscript") + (add-hook 'lisp-mode-hook 'ambrevar/turn-on-prettify-before-save) (add-hook 'lisp-mode-hook 'ambrevar/turn-on-complete-filename) (add-hook 'lisp-mode-hook 'ambrevar/turn-on-tab-width-to-8) ; Because some existing code uses tabs.