emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/progmodes/perl-mode.el


From: Stefan Monnier
Subject: [Emacs-diffs] Changes to emacs/lisp/progmodes/perl-mode.el
Date: Sun, 27 Feb 2005 18:13:21 -0500

Index: emacs/lisp/progmodes/perl-mode.el
diff -c emacs/lisp/progmodes/perl-mode.el:1.51 
emacs/lisp/progmodes/perl-mode.el:1.52
*** emacs/lisp/progmodes/perl-mode.el:1.51      Mon Jan  3 20:46:21 2005
--- emacs/lisp/progmodes/perl-mode.el   Sun Feb 27 23:13:19 2005
***************
*** 161,170 ****
  
  (defvar perl-imenu-generic-expression
    '(;; Functions
!     (nil "^sub\\s-+\\([-A-Za-z0-9+_:]+\\)\\(\\s-\\|\n\\)*{" 1 )
      ;;Variables
!     ("Variables" "^\\(address@hidden:]+\\)\\s-*=" 1 )
!     ("Packages" "^package\\s-+\\([-A-Za-z0-9+_:]+\\);" 1 ))
    "Imenu generic expression for Perl mode.  See `imenu-generic-expression'.")
  
  ;; Regexps updated with help from Tom Tromey <address@hidden> and
--- 161,171 ----
  
  (defvar perl-imenu-generic-expression
    '(;; Functions
!     (nil "^sub\\s-+\\([-A-Za-z0-9+_:]+\\)" 1)
      ;;Variables
!     ("Variables" "^\\(address@hidden:]+\\)\\s-*=" 1)
!     ("Packages" "^package\\s-+\\([-A-Za-z0-9+_:]+\\);" 1)
!     ("Doc sections" "^=head[0-9][ \t]+\\(.*\\)" 1))
    "Imenu generic expression for Perl mode.  See `imenu-generic-expression'.")
  
  ;; Regexps updated with help from Tom Tromey <address@hidden> and
***************
*** 411,416 ****
--- 412,431 ----
  (defcustom perl-nochange ";?#\\|\f\\|\\s(\\|\\(\\w\\|\\s_\\)+:[^:]"
    "*Lines starting with this regular expression are not auto-indented."
    :type 'regexp)
+ 
+ ;; Outline support
+ 
+ (defvar perl-outline-regexp
+   (concat (mapconcat 'cadr perl-imenu-generic-expression "\\|")
+         "\\|^=cut\\>"))
+ 
+ (defun perl-outline-level ()
+   (cond
+    ((looking-at "package\\s-") 0)
+    ((looking-at "sub\\s-") 1)
+    ((looking-at "=head[0-9]") (- (char-before (match-end 0)) ?0))
+    ((looking-at "=cut") 1)
+    (t 3)))
  
  ;;;###autoload
  (defun perl-mode ()
***************
*** 498,506 ****
                              . perl-font-lock-syntactic-face-function)
                             (parse-sexp-lookup-properties . t)))
    ;; Tell imenu how to handle Perl.
!   (make-local-variable 'imenu-generic-expression)
!   (setq imenu-generic-expression perl-imenu-generic-expression)
    (setq imenu-case-fold-search nil)
    (run-hooks 'perl-mode-hook))
  
  ;; This is used by indent-for-comment
--- 513,524 ----
                              . perl-font-lock-syntactic-face-function)
                             (parse-sexp-lookup-properties . t)))
    ;; Tell imenu how to handle Perl.
!   (set (make-local-variable 'imenu-generic-expression)
!        perl-imenu-generic-expression)
    (setq imenu-case-fold-search nil)
+   ;; Setup outline-minor-mode.
+   (set (make-local-variable 'outline-regexp) perl-outline-regexp)
+   (set (make-local-variable 'outline-level) 'perl-outline-level)
    (run-hooks 'perl-mode-hook))
  
  ;; This is used by indent-for-comment




reply via email to

[Prev in Thread] Current Thread [Next in Thread]