branch: elpa/d-mode
commit 8771a86787da162697b656debd8ee67114c8b611
Author: Vladimir Panteleev <[email protected]>
Commit: Vladimir Panteleev <[email protected]>

    Convert d-imenu-generic-expression to rx
---
 d-mode.el | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 62 insertions(+), 4 deletions(-)

diff --git a/d-mode.el b/d-mode.el
index 3f34c50..e35392e 100644
--- a/d-mode.el
+++ b/d-mode.el
@@ -557,10 +557,68 @@ The expression is added to 
`compilation-error-regexp-alist' and
            (not invis))))))
 
 (defvar d-imenu-generic-expression
-  `(("*Classes*" 
"^\\s-*\\(?:\\(?:final\\|abstract\\)\\s-+\\)?\\<class\\s-+\\([a-zA-Z0-9_]+\\)" 
1)
-    ("*Interfaces*" "^\\s-*\\<interface\\s-+\\([a-zA-Z0-9_]+\\)" 1)
-    ("*Structs*" "^\\s-*\\<struct\\s-+\\([a-zA-Z0-9_]+\\)" 1)
-    ("*Templates*" 
"^\\s-*\\(?:mixin\\s-+\\)?\\<template\\s-+\\([a-zA-Z0-9_]+\\)" 1)
+  `(("*Classes*"
+     ,(rx
+       line-start
+       (zero-or-more (syntax whitespace))
+       (zero-or-one
+       (or "final" "abstract")
+       (one-or-more (syntax whitespace)))
+       word-start
+       "class"
+       (one-or-more (syntax whitespace))
+       (submatch
+       (one-or-more
+        (any ?_
+             (?0 . ?9)
+             (?A . ?Z)
+             (?a . ?z)))))
+     1)
+    ("*Interfaces*"
+     ,(rx
+       line-start
+       (zero-or-more (syntax whitespace))
+       word-start
+       "interface"
+       (one-or-more (syntax whitespace))
+       (submatch
+       (one-or-more
+        (any ?_
+             (?0 . ?9)
+             (?A . ?Z)
+             (?a . ?z)))))
+     1)
+    ("*Structs*"
+     ,(rx
+       line-start
+       (zero-or-more (syntax whitespace))
+       word-start
+       "struct"
+       (one-or-more (syntax whitespace))
+       (submatch
+       (one-or-more
+        (any ?_
+             (?0 . ?9)
+             (?A . ?Z)
+             (?a . ?z)))))
+     1)
+    ("*Templates*"
+     ,(rx
+       line-start
+       (zero-or-more (syntax whitespace))
+       (zero-or-one
+       "mixin"
+       (one-or-more (syntax whitespace)))
+       word-start
+       "template"
+       (one-or-more (syntax whitespace))
+       (submatch
+       (one-or-more
+        (any ?_
+             (?0 . ?9)
+             (?A . ?Z)
+             (?a . ?z)))))
+     1)
     (nil d-imenu-method-index-function 2)))
 
 ;;----------------------------------------------------------------------------

Reply via email to