Skip to content

Commit

Permalink
Make d--imenu-rx-def-start a compile-time constant
Browse files Browse the repository at this point in the history
Allows it to be used in rx.

Fixes compilation error.
  • Loading branch information
CyberShadow committed Sep 5, 2019
1 parent 8ae6b38 commit f40e317
Showing 1 changed file with 64 additions and 63 deletions.
127 changes: 64 additions & 63 deletions d-mode.el
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
;; Maintainer: Russel Winder <russel@winder.org.uk>
;; Vladimir Panteleev <vladimir@thecybershadow.net>
;; Created: March 2007
;; Version: 201908291019
;; Version: 201908300712
;; Keywords: D programming language emacs cc-mode
;; Package-Requires: ((emacs "24.3"))

Expand Down Expand Up @@ -482,73 +482,74 @@ Each list item should be a regexp matching a single identifier."
(easy-menu-define d-menu d-mode-map "D Mode Commands"
(cons "D" (c-lang-const c-mode-menu d)))

(defconst d--imenu-rx-def-start
'(seq
;; 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))

(zero-or-more
(or
word-start
(or
;; StorageClass
"deprecated"
"static"
"extern"
"abstract"
"final"
"override"
"synchronized"
"scope"
"nothrow"
"pure"
"ref"
(seq
(eval-when-compile
(defconst d--imenu-rx-def-start
'(seq
;; 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))

(zero-or-more
(or
word-start
(or
"extern"
;; StorageClass
"deprecated"
"static"
"extern"
"abstract"
"final"
"override"
"synchronized"
"scope"
"nothrow"
"pure"
"ref"
(seq
(or
"extern"
"deprecated"
"package"
)
(zero-or-more space)
"("
(zero-or-more space)
(one-or-more (not (any "()")))
(zero-or-more space)
")")

;; VisibilityAttribute
"private"
"package"
"protected"
"public"
"export"
)
(zero-or-more space)
"("
(zero-or-more space)
(one-or-more (not (any "()")))
(zero-or-more space)
")")

;; VisibilityAttribute
"private"
"package"
"protected"
"public"
"export"
)

;; AtAttribute
(seq
"@"
(one-or-more (any "a-zA-Z0-9_"))
(zero-or-one
(zero-or-more space)
"("
(zero-or-more space)
(one-or-more (not (any "()")))
(zero-or-more space)
")")))
(zero-or-more space))

))
;; AtAttribute
(seq
"@"
(one-or-more (any "a-zA-Z0-9_"))
(zero-or-one
(zero-or-more space)
"("
(zero-or-more space)
(one-or-more (not (any "()")))
(zero-or-more space)
")")))
(zero-or-more space))

)))

(defconst d-imenu-method-name-pattern
(rx
Expand Down

0 comments on commit f40e317

Please sign in to comment.