[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs/lisp/progmodes cc-menus.el
From: |
Alan Mackenzie |
Subject: |
[Emacs-diffs] emacs/lisp/progmodes cc-menus.el |
Date: |
Wed, 18 Nov 2009 21:13:07 +0000 |
CVSROOT: /cvsroot/emacs
Module name: emacs
Changes by: Alan Mackenzie <acmacm> 09/11/18 21:13:07
Modified files:
lisp/progmodes : cc-menus.el
Log message:
(cc-imenu-java-generic-expression): A new, more accurate version of the
regexp. Contributed by Nathaniel Flath.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/progmodes/cc-menus.el?cvsroot=emacs&r1=1.43&r2=1.44
Patches:
Index: cc-menus.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/progmodes/cc-menus.el,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -b -r1.43 -r1.44
--- cc-menus.el 18 Feb 2009 09:23:32 -0000 1.43
+++ cc-menus.el 18 Nov 2009 21:13:07 -0000 1.44
@@ -149,22 +149,45 @@
(defvar cc-imenu-java-generic-expression
`((nil
,(concat
- "[" c-alpha "_][\]\[." c-alnum "_]+[ \t\n\r]+" ; type spec
+ "[" c-alpha "_][\]\[." c-alnum "_<> ]+[ \t\n\r]+" ; type spec
"\\([" c-alpha "_][" c-alnum "_]+\\)" ; method name
"[ \t\n\r]*"
- ;; An argument list that is either empty or contains at least
- ;; two identifiers with only space between them. This avoids
- ;; matching e.g. "else if (foo)".
- (concat "([ \t\n\r]*"
- "\\([\]\[.," c-alnum "_]+"
+ ;; An argument list htat is either empty or contains any number
+ ;; of arguments. An argument is any number of annotations
+ ;; followed by a type spec followed by a word. A word is an
+ ;; identifier. A type spec is an identifier, possibly followed
+ ;; by < typespec > possibly followed by [].
+ (concat "("
+ "\\("
+ "[ \t\n\r]*"
+ "\\("
+ "@"
+ "[" c-alpha "_]"
+ "[" c-alnum "._]""*"
+ "[ \t\n\r]+"
+ "\\)*"
+ "\\("
+ "[" c-alpha "_]"
+ "[\]\[" c-alnum "_.]*"
+ "\\("
+ "<"
+ "[ \t\n\r]*"
+ "[\]\[.," c-alnum "_<> \t\n\r]*"
+ ">"
+ "\\)?"
+ "\\(\\[\\]\\)?"
"[ \t\n\r]+"
- "[\]\[.," c-alnum "_]"
- "[\]\[.," c-alnum "_ \t\n\r]*"
- "\\)?)")
- "[.," c-alnum "_ \t\n\r]*"
+ "\\)"
+ "[" c-alpha "_]"
+ "[" c-alnum "_]*"
+ "[ \t\n\r,]*"
+ "\\)*"
+ ")"
+ "[ \t\n\r]*"
"{"
- ) 1))
- "Imenu generic expression for Java mode. See `imenu-generic-expression'.")
+ )) 1))
+ "Imenu generic expression for Java mode. See
+`imenu-generic-expression'.")
;; *Warning for cc-mode developers*
;;
- [Emacs-diffs] emacs/lisp/progmodes cc-menus.el,
Alan Mackenzie <=