This has been a major frustration of mine ever since I discovered the tool, and while I’ve thus far been willing to swallow my disgust for its preferences in favor of the benefits of an autoformatter, moments like this shake my faith. This is what rustfmt wants to do:

-   let peer = self.connected.iter().reduce(|a,b|
-           if key_distance(a.id, recipient) < key_distance(b.id, recipient) { a } else { b }).unwrap();
+   let peer = self
+           .connected
+           .iter()
+           .reduce(|a, b| {
+                   if key_distance(a.id, recipient) < key_distance(b.id, recipient) {
+                           a
+                   } else {
+                           b
+                   }
+           })
+           .unwrap();

It won’t even accept a modest counter-proposal like moving .connected.iter() to the first line. Nor can I find any settings for rustfmt.toml that can change its mind. Please tell me I am not the only one who hates rustfmt.

  • pinknoise@lemmy.ml
    link
    fedilink
    arrow-up
    1
    arrow-down
    1
    ·
    3 years ago

    Seems fine to me, maybe the closure definitions could be on new lines. Imo rustfmt is pretty nice, the only thing I really hate is spaces instead of tabs.

    • Yujiri@lemmy.mlOP
      link
      fedilink
      arrow-up
      2
      ·
      3 years ago

      well, if you want it to use tabs instead of spaces (I do too), you can set hard_tabs = true in rustfmt.toml