branch: elpa/rust-mode
commit 92584c303acc417501d1faa593ff1392fd306c1d
Author: mrBliss <[email protected]>
Commit: mrBliss <[email protected]>
Fix the special case for the first line
This special case broke indentation of `where` clauses.
---
rust-mode-tests.el | 11 +++++++++++
rust-mode.el | 7 ++++---
2 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/rust-mode-tests.el b/rust-mode-tests.el
index e224e67..cc76007 100644
--- a/rust-mode-tests.el
+++ b/rust-mode-tests.el
@@ -603,6 +603,17 @@ impl<'a, K, Q: ?Sized, V, S> Index<&'a Q> for HashMap<K,
V, S>
}
"))
+(ert-deftest indent-align-where-clauses-first-line ()
+ (test-indent
+ "fn foo1(a: A, b: B) -> A
+ where A: Clone + Default, B: Eq {
+ let body;
+ Foo {
+ bar: 3
+ }
+}
+"))
+
(ert-deftest indent-square-bracket-alignment ()
(test-indent
"
diff --git a/rust-mode.el b/rust-mode.el
index d857f25..6b09580 100644
--- a/rust-mode.el
+++ b/rust-mode.el
@@ -444,10 +444,11 @@ function or trait. When nil, where will be aligned with
fn or trait."
(save-excursion
(rust-rewind-irrelevant)
- ;; Point is now at the end of the previous ine
+ ;; Point is now at the end of the previous line
(or
- ;; If we are at the first line, no indentation is
needed, so stay at baseline...
- (= 1 (line-number-at-pos (point)))
+ ;; If we are at the start of the buffer, no
+ ;; indentation is needed, so stay at baseline...
+ (= (point) 1)
;; ..or if the previous line ends with any of these:
;; { ? : ( , ; [ }
;; then we are at the beginning of an expression, so
stay on the baseline...