branch: elpa/d-mode
commit 781a94d6146efd1c8e087a81d2bfa76c6876e5c5
Author: Dmitri Makarov <[email protected]>
Commit: Dmitri Makarov <[email protected]>
Add doc-comment style that recognizes doxygen and D doc-comments.
---
d-mode.el | 25 +++++++++++++++++++------
1 file changed, 19 insertions(+), 6 deletions(-)
diff --git a/d-mode.el b/d-mode.el
index bf96ae8..2dabd7a 100644
--- a/d-mode.el
+++ b/d-mode.el
@@ -137,16 +137,29 @@ operators."
(c-lang-defconst c-literal-start-regexp
;; Regexp to match the start of comments and string literals.
d "/[*+/]\\|\"\\|`")
-;;(c-lang-defconst c-comment-prefix-regexp d "//+\\|\\**")
-
-(c-lang-defconst c-doc-comment-start-regexp
- ;; doc comments for D use "///", "/**" or doxygen's "/*!" "//!"
- d "/\\*[*!]\\|//[/!]")
(c-lang-defconst c-block-prefix-disallowed-chars
;; Allow ':' for inherit list starters.
d (set-difference (c-lang-const c-block-prefix-disallowed-chars)
- '(?:)))
+ '(?:)))
+
+(defconst doxygen-font-lock-doc-comments
+ (let ((symbol "[a-zA-Z0-9_]+")
+ (header "^ \\* "))
+ `((,(concat header "\\(" symbol "\\):[ \t]*$")
+ 1 ,c-doc-markup-face-name prepend nil)
+ (,(concat symbol "()")
+ 0 ,c-doc-markup-face-name prepend nil)
+ (,(concat header "\\(" "@" symbol "\\):")
+ 1 ,c-doc-markup-face-name prepend nil)
+ (,(concat "[#%@]" symbol)
+ 0 ,c-doc-markup-face-name prepend nil))
+ ))
+
+(defconst doxygen-font-lock-keywords
+ `((,(lambda (limit)
+ (c-font-lock-doc-comments "/\\+[+!]\\|/\\*[*!]\\|//[/!]" limit
+ doxygen-font-lock-doc-comments)))))
;;----------------------------------------------------------------------------