RiverpodリポジトリのLintルールが面白かった
はじめに
Flutterでは新規にプロジェクトを作成するとflutter_lintsパッケージがデフォルトで設定されるため、そのまま使っている人が多いのではないかと思います。
というか自分がそんな感じだったのですが、もう少しルール厳しくしたいな〜と思ってたまたまRiverpodどうなってるんだろ👀と見てみた話です。
Lintって何という方は以下の記事が分かりやすかったです👀
RiverpodのLintルール
とりあえずanalysis_options.yamlを見てみます👀
all_lint_rules.yamlというのをimportしているみたいです。
(名前ですでに何してるかわかっちゃいますね)
all_lint_rules.yamlは文字通りFlutterで使える全てのルールを記述しているようです❗
再びanalysis_options.yamlに戻ります。
ここでは使わないルールを無効化しているようです。また、無効にしている理由が一つ一つに書いてあります。
例)prefer_double_quotesはprefer_single_quotesと競合する。シングルクォートは入力が容易で、可読性に影響しない。
まとめ
結論
Riverpodでは一旦すべてのLintルールを取り込んで、不要なものを無効化していました。
どのルールを追加しようかと考えていた自分としては、逆転の発想という感じで面白かったです。
一旦最も厳しい状態にして、不要なものだけ無していくのは良さそうでした。
追記
monoさんからこの件について、Remiさん(Riverpodの作者)のブログにも書いてあると教えていただきました。
また全ルール網羅用のパッケージもあるようなので、今回のやり方を試そうと思った方はこのパッケージの利用を検討しても良さそうです。
追記2
all_lint_rules_communityは古いルールとかも残っていてちょっと使い勝手悪かったです🥺(自動更新だから?)
村松さんがメンテしているこちらのパッケージにも全ルール網羅用のファイルがあり、こちらは古いルールなどを除くなどされており良さそうでした🥳
自分は以下のような設定にしてみました。
村松さんのパッケージを使いつつ、Riverpodの設定をパクって、少し自分好みに変更してます。
Discussion