細かいこと考慮すると、ものすごく色々あるのですが、大体の判断基準は、まずこうだと思われます。
細かいことは色々tweetしたり断片的に何度か語っているが・・・気が向いたらまた別途まとめるかもしれないし、しないかもしれない
あとこれは、警告や書き換えをしたい個々のものに対してどれを使うか?であって、プロジェクト全体としては併用はあり得るというか普通というか、個人的には全部併用しています
— Kenji Yoshida (@xuwei_k) 2024年6月10日
wartremoverとscalafixのSyntacticRuleとSemanticRuleの違いや使い分け、
— Kenji Yoshida (@xuwei_k) April 11, 2024
大抵は何度か言ってることの繰り返しかまとめなのだけど、改めてどこかに書いたやつ雑に転記しておくか pic.twitter.com/ubwDGmPUqE
生成元の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というか書き切れないのでここでは書かない]