summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rust-mode.el17
1 files changed, 11 insertions, 6 deletions
diff --git a/rust-mode.el b/rust-mode.el
index bb4d792..647e6b1 100644
--- a/rust-mode.el
+++ b/rust-mode.el
@@ -1058,13 +1058,18 @@ the desired identifiers), but does not match type annotations \"foo::<\"."
(let ((result
;; Replace /* with same number of spaces
(replace-regexp-in-string
- "\\(?:/\\*+\\)[!*]?"
+ "\\(?:/\\*+?\\)[!*]?"
(lambda (s)
- ;; We want the * to line up with the first * of the comment start
- (concat (make-string (- (length s)
- (if (or (string-suffix-p "!" s)
- (string-suffix-p "**" s)) 2 1))
- ?\x20) "*"))
+ ;; We want the * to line up with the first * of the
+ ;; comment start
+ (let ((offset (if (eq t
+ (compare-strings "/*" nil nil
+ s
+ (- (length s) 2)
+ (length s)))
+ 1 2)))
+ (concat (make-string (- (length s) offset)
+ ?\x20) "*")))
line-start)))
;; Make sure we've got at least one space at the end
(if (not (= (aref result (- (length result) 1)) ?\x20))