]> git.eshelyaron.com Git - emacs.git/commitdiff
(perl-imenu-generic-expression) New variable.
authorRichard M. Stallman <rms@gnu.org>
Wed, 26 Jul 1995 18:01:10 +0000 (18:01 +0000)
committerRichard M. Stallman <rms@gnu.org>
Wed, 26 Jul 1995 18:01:10 +0000 (18:01 +0000)
(perl-mode): Set imenu-generic-expression.

lisp/progmodes/perl-mode.el

index d6c9d5802f97149c934132a8ee25579bb9bc4e04..4157554fdef4b4ae90969b13dd731a4286dd93c6 100644 (file)
@@ -147,6 +147,15 @@ The expansion is entirely correct because it uses the C preprocessor."
   (modify-syntax-entry ?| "." perl-mode-syntax-table)
 )
 
+(defvar perl-imenu-generic-expression
+  '(
+    ;; Functions
+    (nil "^sub\\s-+\\([-A-Za-z0-9+_:]+\\)\\(\\s-\\|\n\\)*{" 1 )
+    ;;Variables
+    ("Variables" "^\\([$@%][-A-Za-z0-9+_:]+\\)\\s-*=" 1 )
+    )
+  "Imenu generic expression for Perl mode.  See `imenu-generic-expression'.")
+
 (defvar perl-font-lock-keywords
   (list
 ;   ("if" "until" "while" "elsif" "else" "unless" "for" "foreach" "continue"
@@ -273,6 +282,9 @@ Turning on Perl mode runs the normal hook `perl-mode-hook'."
   (setq parse-sexp-ignore-comments t)
   (make-local-variable 'font-lock-defaults)
   (setq font-lock-defaults '(perl-font-lock-keywords))
+  ;; Tell imenu how to handle Perl.
+  (make-local-variable 'imenu-generic-expression)
+  (setq imenu-generic-expression perl-imenu-generic-expression)
   (run-hooks 'perl-mode-hook))
 \f
 ;; This is used by indent-for-comment