branch: elpa/d-mode
commit a4f0b2d0a056848528a42841b743be2cfdb719ed
Author: Vladimir Panteleev <[email protected]>
Commit: Vladimir Panteleev <[email protected]>
Fix imenu for functions prefixed with a version/else
---
d-mode.el | 16 +++++++++++++++-
tests/imenu.d | 7 ++++++-
2 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/d-mode.el b/d-mode.el
index 9667b60..3f34c50 100644
--- a/d-mode.el
+++ b/d-mode.el
@@ -7,7 +7,7 @@
;; Maintainer: Russel Winder <[email protected]>
;; Vladimir Panteleev <[email protected]>
;; Created: March 2007
-;; Version: 201610111926
+;; Version: 201610111931
;; Keywords: D programming language emacs cc-mode
;;;; NB Version number is date and time yyyymmddhhMM UTC.
@@ -470,6 +470,20 @@ The expression is added to
`compilation-error-regexp-alist' and
bol
(zero-or-more space)
+ ;; Conditionals
+ (zero-or-one
+ "else"
+ (zero-or-more space))
+ (zero-or-one
+ "version"
+ (zero-or-more space)
+ "("
+ (zero-or-more space)
+ (one-or-more (any "a-zA-Z0-9_"))
+ (zero-or-more space)
+ ")"
+ (zero-or-more space))
+
;; Qualifiers
(zero-or-more
(one-or-more (any "a-z_@()C+"))
diff --git a/tests/imenu.d b/tests/imenu.d
index eec7a62..44d997c 100644
--- a/tests/imenu.d
+++ b/tests/imenu.d
@@ -1,5 +1,5 @@
// #run: (d-test-get-imenu-lines)
-// #out: (4 6 11 14 17 19 22 25)
+// #out: (4 6 11 14 17 19 22 25 33 34)
void foo(int x) {}
@@ -29,3 +29,8 @@ auto execute(in char[][] args,
in char[] workDir = null)
@trusted //TODO: @safe
{}
+
+version(StdDdoc) string readLink(C)(const(C)[] link) @safe;
+else version(Posix) string readLink(C)(const(C)[] link) @safe
+{}
+