scalafmtとscalafixとwartremoverの使い分けフローチャート

細かいこと考慮すると、ものすごく色々あるのですが、大体の判断基準は、まずこうだと思われます。

scalafmt scalafix wartremover

細かいことは色々tweetしたり断片的に何度か語っているが・・・気が向いたらまた別途まとめるかもしれないし、しないかもしれない

生成元のmarmaidのデータも貼っておきますね

---
title: scalafmtとscalafixとwartremoverの使い分け
---
flowchart

x1[scalafmtで十分か?]

x1-->|はい|x2

x2[scalafmt使う]

x1-->|いいえ|x3

x3[SyntacticRuleで十分か?]

x3-->|はい|x4

x4[SyntacticRule使う]

x3-->|いいえ|x5

x5[自動書き換えしたいか\nLinterを作りたいだけか]

x5-->|自動書き換えしたい|x6

x6[SemanticRule使う。\n\n実はSyntacticRuleで十分か\nどうかもう一度検討しような]

x5-->|Linterでいい|x7

x7[SemanticRuleで実質不可能なほど\n複雑で正確な型情報が必要か?]

x7-->|複雑な型情報が必要|x8

x8[wartremover使う]

x7-->|いいえ|x9

x9[ここまで来たら原理上wartremoverでも\nSemanticRuleでもどちらでも\n不可能ではないかもしれないが\n細かい使い分け絶妙で難しい\nというか書き切れないのでここでは書かない]