From f40e31758f5a6524d35abe027394e9f93a4bfed3 Mon Sep 17 00:00:00 2001 From: Vladimir Panteleev Date: Fri, 30 Aug 2019 07:12:28 +0000 Subject: [PATCH] Make d--imenu-rx-def-start a compile-time constant Allows it to be used in rx. Fixes compilation error. --- d-mode.el | 127 +++++++++++++++++++++++++++--------------------------- 1 file changed, 64 insertions(+), 63 deletions(-) diff --git a/d-mode.el b/d-mode.el index 509b12d8..71ceb991 100644 --- a/d-mode.el +++ b/d-mode.el @@ -7,7 +7,7 @@ ;; Maintainer: Russel Winder ;; Vladimir Panteleev ;; Created: March 2007 -;; Version: 201908291019 +;; Version: 201908300712 ;; Keywords: D programming language emacs cc-mode ;; Package-Requires: ((emacs "24.3")) @@ -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