diff options
| -rw-r--r-- | rust-mode-tests.el | 11 | ||||
| -rw-r--r-- | rust-mode.el | 8 |
2 files changed, 18 insertions, 1 deletions
diff --git a/rust-mode-tests.el b/rust-mode-tests.el index de3900c..1e0207d 100644 --- a/rust-mode-tests.el +++ b/rust-mode-tests.el @@ -623,6 +623,17 @@ impl<'a, K, Q: ?Sized, V, S> Index<&'a Q> for HashMap<K, V, S> } ")) +(ert-deftest indent-align-where-in-comment () + (test-indent + "/// - there must not exist an edge U->V in the graph where: +#[derive(Clone, PartialEq, Eq)] +pub struct Region { // <-- this should be flush with left margin! + entry: BasicBlockIndex, + leaves: BTreeMap<BasicBlockIndex, usize>, +} +")) + + (ert-deftest indent-square-bracket-alignment () (test-indent " diff --git a/rust-mode.el b/rust-mode.el index 647e6b1..7a7b78c 100644 --- a/rust-mode.el +++ b/rust-mode.el @@ -253,7 +253,13 @@ function or trait. When nil, where will be aligned with fn or trait." ;; where A: Eq ;; B: Hash <- on this line (and (save-excursion - (re-search-backward "\\bwhere\\b" function-start t)) + (and + ;; There is a where clause, + (re-search-backward "\\bwhere\\b" function-start t) + ;; but not inside a string, + (not (nth 3 (syntax-ppss))) + ;; nor inside a comment + (not (nth 4 (syntax-ppss))))) (= current-level function-level))) (goto-char function-start))))) |
