# Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: nbtrap@nbtrap.com-20131112140320-if3f086us590vp5c # target_branch: file:///home/nathan/opt/etc/bzr-repos/emacs/trunk/ # testament_sha1: 6e81494670e3d66dc1c7cb0abd95be7a9831a403 # timestamp: 2013-11-12 09:05:04 -0500 # base_revision_id: jan.h.d@swipnet.se-20131110121803-bv908hul7t8ji6c8 # # Begin patch === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-11-10 08:35:04 +0000 +++ lisp/ChangeLog 2013-11-12 14:03:20 +0000 @@ -1,3 +1,17 @@ +2013-11-12 Nathan Trapuzzano + + * progmodes/cperl-mode.el (cperl-imenu--function-name-regexp-perl) + (cperl-outline-level, cperl-imeny--create-perl-index): Index imenu + definitions with the positions at which they begin instead of + their end positions. (Bug#15848) + +2013-11-10 Nathan Trapuzzano + + * progmodes/cperl-mode.el (cperl-imenu-index-pod) + (cperl-imenu--create-perl-index): Define and implement + `cperl-imenu-index-pod' to optionally disable cperl's indexing of + POD directives for imenu. (Bug#15848) + 2013-11-10 Michael Albinus * net/tramp.el (tramp-methods): === modified file 'lisp/progmodes/cperl-mode.el' --- lisp/progmodes/cperl-mode.el 2013-11-04 03:44:23 +0000 +++ lisp/progmodes/cperl-mode.el 2013-11-12 13:26:52 +0000 @@ -511,6 +511,13 @@ :type 'boolean :group 'cperl-help-system) +(defcustom cperl-imenu-index-pod t + "*Whether POD `=head' directives should be indexed by imenu. +Non-nil means `which-function-mode' won't count POD directives as +top-level definitions." + :type 'boolean + :group 'cperl-help-system) + (defcustom cperl-max-help-size 66 "*Non-nil means shrink-wrapping of info-buffer allowed up to these percents." :type '(choice integer (const nil)) @@ -844,7 +851,8 @@ interactive sweep over the buffer); d) Has support for imenu, including: 1) Separate unordered list of \"interesting places\"; - 2) Separate TOC of POD sections; + 2) Separate TOC of POD sections by default + (cf. `cperl-imenu-index-pod'); 3) Separate list of packages; 4) Hierarchical view of methods in (sub)packages; 5) and functions (by the full name - with package); @@ -1439,7 +1447,7 @@ ;;; Details of groups in this are used in `cperl-imenu--create-perl-index' ;;; and `cperl-outline-level'. -;;;; Was: 2=sub|package; now 2=package-group, 5=package-name 8=sub-name (+3) +;;;; Was: 2=sub|package; now 2=package-group, 5=package-name 9=sub-name (+4) (defvar cperl-imenu--function-name-regexp-perl (concat "^\\(" ; 1 = all @@ -1448,12 +1456,13 @@ cperl-white-and-comment-rex ; 4 = pre-package-name "\\([a-zA-Z_0-9:']+\\)\\)?\\)" ; 5 = package-name "\\|" - "[ \t]*sub" - (cperl-after-sub-regexp 'named nil) ; 8=name 11=proto 14=attr-start - cperl-maybe-white-and-comment-rex ; 15=pre-block + "\\([ \t]*sub" + (cperl-after-sub-regexp 'named nil) ; 9=name 12=proto 15=attr-start + cperl-maybe-white-and-comment-rex ; 16=pre-block + "\\)" "\\|" - "=head\\([1-4]\\)[ \t]+" ; 16=level - "\\([^\n]+\\)$" ; 17=text + "=head\\([1-4]\\)[ \t]+" ; 17=level + "\\([^\n]+\\)$" ; 18=text "\\)")) (defvar cperl-outline-regexp @@ -5486,17 +5495,16 @@ (while (re-search-forward (or regexp cperl-imenu--function-name-regexp-perl) nil t) - ;; 2=package-group, 5=package-name 8=sub-name + ;; 2=package-group, 5=package-name 9=sub-name (cond ((and ; Skip some noise if building tags (match-beginning 5) ; package name ;;(eq (char-after (match-beginning 2)) ?p) ; package - (not (save-match-data - (looking-at "[ \t\n]*;")))) ; Plain text word 'package' + (not (looking-at-p "[ \t\n]*;"))) ; Plain text word 'package' nil) ((and (or (match-beginning 2) - (match-beginning 8)) ; package or sub + (match-beginning 9)) ; package or sub ;; Skip if quoted (will not skip multi-line ''-strings :-(): (null (get-text-property (match-beginning 1) 'syntax-table)) (null (get-text-property (match-beginning 1) 'syntax-type)) @@ -5535,10 +5543,13 @@ (if (and is-proto (not is-pack)) nil (or is-pack (setq name - (buffer-substring (match-beginning 8) (match-end 8))) + (buffer-substring (match-beginning 9) (match-end 9))) (set-text-properties 0 (length name) nil name)) (setq marker (make-marker)) - (set-marker marker (match-end (if is-pack 2 8))) + (set-marker marker (save-excursion + (goto-char (match-beginning (if is-pack 2 6))) + (skip-chars-forward " \t") + (point))) (cond (is-pack nil) ((string-match "[:']" name) (setq meth t)) @@ -5551,13 +5562,13 @@ (push index index-alist)) (if meth (push index index-meth-alist)) (push index index-unsorted-alist))) - ((match-beginning 16) ; POD section - (setq name (buffer-substring (match-beginning 17) (match-end 17)) + ((and cperl-imenu-index-pod (match-beginning 17)) ; POD section + (setq name (buffer-substring (match-beginning 18) (match-end 18)) marker (make-marker)) - (set-marker marker (match-beginning 17)) + (set-marker marker (- (match-beginning 17) 5)) (set-text-properties 0 (length name) nil name) (setq name (concat (make-string - (* 3 (- (char-after (match-beginning 16)) ?1)) + (* 3 (- (char-after (match-beginning 17)) ?1)) ?\ ) name) index (cons name marker)) @@ -5624,11 +5635,11 @@ (defun cperl-outline-level () (looking-at outline-regexp) (cond ((not (match-beginning 1)) 0) ; beginning-of-file -;;;; 2=package-group, 5=package-name 8=sub-name 16=head-level +;;;; 2=package-group, 5=package-name 9=sub-name 17=head-level ((match-beginning 2) 0) ; package - ((match-beginning 8) 1) ; sub - ((match-beginning 16) - (- (char-after (match-beginning 16)) ?0)) ; headN ==> N + ((match-beginning 9) 1) ; sub + ((match-beginning 17) + (- (char-after (match-beginning 17)) ?0)) ; headN ==> N (t 5))) ; should not happen # Begin bundle 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 FbZA