branch: elpa/rust-mode
commit 917503bf51d936ee0868a377527ff88a8a7a2ac0
Author: Brian Mastenbrook <[email protected]>
Commit: Brian Mastenbrook <[email protected]>
Fix failing tests, and add a test for the fix.
---
rust-mode-tests.el | 9 +++++++++
rust-mode.el | 7 +++++--
2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/rust-mode-tests.el b/rust-mode-tests.el
index 2c0431c..de3900c 100644
--- a/rust-mode-tests.el
+++ b/rust-mode-tests.el
@@ -164,6 +164,15 @@ Also, the result should be the same regardless of whether
the code is at the beg
//
// This is the second really really really really really really long
paragraph" 1 89))
+(ert-deftest fill-paragraph-multi-line-style-comment ()
+ (test-fill-paragraph
+ "/* This is a very very very very very very very very long string
+ */"
+ "/* This is a very very very very
+ * very very very very long
+ * string
+ */"))
+
(ert-deftest fill-paragraph-multi-line-style-inner-doc-comment ()
(test-fill-paragraph
"/*! This is a very very very very very very very long string
diff --git a/rust-mode.el b/rust-mode.el
index 273a751..bb4d792 100644
--- a/rust-mode.el
+++ b/rust-mode.el
@@ -1058,10 +1058,13 @@ 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) 1) ?\x20) "*"))
+ (concat (make-string (- (length s)
+ (if (or (string-suffix-p "!" s)
+ (string-suffix-p "**" s)) 2 1))
+ ?\x20) "*"))
line-start)))
;; Make sure we've got at least one space at the end
(if (not (= (aref result (- (length result) 1)) ?\x20))