diff options
| author | Stefan Monnier | 2005-02-27 23:13:19 +0000 |
|---|---|---|
| committer | Stefan Monnier | 2005-02-27 23:13:19 +0000 |
| commit | 35c5f5d32f7449676262abe7333b3d12dc2bcbf9 (patch) | |
| tree | c7a52f4b1e3575ea3a2b51ea7214792d897dd8f6 | |
| parent | f43ae016822a121eee313180bc4788154f897b42 (diff) | |
| download | emacs-35c5f5d32f7449676262abe7333b3d12dc2bcbf9.tar.gz emacs-35c5f5d32f7449676262abe7333b3d12dc2bcbf9.zip | |
(perl-imenu-generic-expression): Add entries for perldoc sections.
(perl-outline-regexp, perl-outline-level): New var and function.
(perl-mode): Use them.
| -rw-r--r-- | lisp/ChangeLog | 7 | ||||
| -rw-r--r-- | lisp/progmodes/perl-mode.el | 28 |
2 files changed, 30 insertions, 5 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 716f6e5a42f..fe9f2fb1930 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,10 @@ | |||
| 1 | 2005-02-27 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * progmodes/perl-mode.el (perl-imenu-generic-expression): Add entries | ||
| 4 | for perldoc sections. | ||
| 5 | (perl-outline-regexp, perl-outline-level): New var and function. | ||
| 6 | (perl-mode): Use them. | ||
| 7 | |||
| 1 | 2005-02-27 Glenn Morris <gmorris@ast.cam.ac.uk> | 8 | 2005-02-27 Glenn Morris <gmorris@ast.cam.ac.uk> |
| 2 | 9 | ||
| 3 | * calendar/diary-lib.el (diary-remind): Discard any mark portion | 10 | * calendar/diary-lib.el (diary-remind): Discard any mark portion |
diff --git a/lisp/progmodes/perl-mode.el b/lisp/progmodes/perl-mode.el index eb630c2ed54..ad4633e20eb 100644 --- a/lisp/progmodes/perl-mode.el +++ b/lisp/progmodes/perl-mode.el | |||
| @@ -161,10 +161,11 @@ The expansion is entirely correct because it uses the C preprocessor." | |||
| 161 | 161 | ||
| 162 | (defvar perl-imenu-generic-expression | 162 | (defvar perl-imenu-generic-expression |
| 163 | '(;; Functions | 163 | '(;; Functions |
| 164 | (nil "^sub\\s-+\\([-A-Za-z0-9+_:]+\\)\\(\\s-\\|\n\\)*{" 1 ) | 164 | (nil "^sub\\s-+\\([-A-Za-z0-9+_:]+\\)" 1) |
| 165 | ;;Variables | 165 | ;;Variables |
| 166 | ("Variables" "^\\([$@%][-A-Za-z0-9+_:]+\\)\\s-*=" 1 ) | 166 | ("Variables" "^\\([$@%][-A-Za-z0-9+_:]+\\)\\s-*=" 1) |
| 167 | ("Packages" "^package\\s-+\\([-A-Za-z0-9+_:]+\\);" 1 )) | 167 | ("Packages" "^package\\s-+\\([-A-Za-z0-9+_:]+\\);" 1) |
| 168 | ("Doc sections" "^=head[0-9][ \t]+\\(.*\\)" 1)) | ||
| 168 | "Imenu generic expression for Perl mode. See `imenu-generic-expression'.") | 169 | "Imenu generic expression for Perl mode. See `imenu-generic-expression'.") |
| 169 | 170 | ||
| 170 | ;; Regexps updated with help from Tom Tromey <tromey@cambric.colorado.edu> and | 171 | ;; Regexps updated with help from Tom Tromey <tromey@cambric.colorado.edu> and |
| @@ -411,6 +412,20 @@ create a new comment." | |||
| 411 | (defcustom perl-nochange ";?#\\|\f\\|\\s(\\|\\(\\w\\|\\s_\\)+:[^:]" | 412 | (defcustom perl-nochange ";?#\\|\f\\|\\s(\\|\\(\\w\\|\\s_\\)+:[^:]" |
| 412 | "*Lines starting with this regular expression are not auto-indented." | 413 | "*Lines starting with this regular expression are not auto-indented." |
| 413 | :type 'regexp) | 414 | :type 'regexp) |
| 415 | |||
| 416 | ;; Outline support | ||
| 417 | |||
| 418 | (defvar perl-outline-regexp | ||
| 419 | (concat (mapconcat 'cadr perl-imenu-generic-expression "\\|") | ||
| 420 | "\\|^=cut\\>")) | ||
| 421 | |||
| 422 | (defun perl-outline-level () | ||
| 423 | (cond | ||
| 424 | ((looking-at "package\\s-") 0) | ||
| 425 | ((looking-at "sub\\s-") 1) | ||
| 426 | ((looking-at "=head[0-9]") (- (char-before (match-end 0)) ?0)) | ||
| 427 | ((looking-at "=cut") 1) | ||
| 428 | (t 3))) | ||
| 414 | 429 | ||
| 415 | ;;;###autoload | 430 | ;;;###autoload |
| 416 | (defun perl-mode () | 431 | (defun perl-mode () |
| @@ -498,9 +513,12 @@ Turning on Perl mode runs the normal hook `perl-mode-hook'." | |||
| 498 | . perl-font-lock-syntactic-face-function) | 513 | . perl-font-lock-syntactic-face-function) |
| 499 | (parse-sexp-lookup-properties . t))) | 514 | (parse-sexp-lookup-properties . t))) |
| 500 | ;; Tell imenu how to handle Perl. | 515 | ;; Tell imenu how to handle Perl. |
| 501 | (make-local-variable 'imenu-generic-expression) | 516 | (set (make-local-variable 'imenu-generic-expression) |
| 502 | (setq imenu-generic-expression perl-imenu-generic-expression) | 517 | perl-imenu-generic-expression) |
| 503 | (setq imenu-case-fold-search nil) | 518 | (setq imenu-case-fold-search nil) |
| 519 | ;; Setup outline-minor-mode. | ||
| 520 | (set (make-local-variable 'outline-regexp) perl-outline-regexp) | ||
| 521 | (set (make-local-variable 'outline-level) 'perl-outline-level) | ||
| 504 | (run-hooks 'perl-mode-hook)) | 522 | (run-hooks 'perl-mode-hook)) |
| 505 | 523 | ||
| 506 | ;; This is used by indent-for-comment | 524 | ;; This is used by indent-for-comment |