Closed6
flutterの静的解析をカスタマイズする
https://medium.com/flutter-jp/analysis-b8dbb19d3978 を参考にして
https://pub.dev/packages/pedantic_mono を設定した
これによって以下のルールが適用される
色々とanalysisのエラーが出たので、項目を調査してここにメモする
implicit-castsはDart 2.16 から deprecated っぽい
Version note: The strict-casts mode was introduced in Dart 2.16. To enable similar checks with earlier SDK releases, consider using the now deprecated implicit-casts option:
strict-raw-types
https://ferrygraphql.com が graphql schemaからdartコードを生成してくれるのだが、生成されたコードがGenericsを多用しているため、それらを利用している部分のコードがめちゃめちゃエラーになる
以下の設定で終わらせた
include: package:pedantic_mono/analysis_options.yaml
linter:
rules:
sort_pub_dependencies: false # pubを種類ごとに配置しているため
avoid_classes_with_only_static_members: false # classを名前空間として使いたいため
use_build_context_synchronously: false # 一旦見送り cf. https://twitter.com/_mono/status/1390556226853904384
lines_longer_than_80_chars: false # 80は無理 120で設定する方法がなかったのでfalseにした
use_key_in_widget_constructors: false # key渡すのMustじゃないと思うのでfalse
always_put_control_body_on_new_line: false # 短く書きたいので
flutter_style_todos: false # 謎のTODOのスタイルいらん
analyzer:
# 自動生成系を除外。auto importを利用したい時は手動で外す
# cf: https://github.com/dart-lang/sdk/issues/46224
exclude:
# ferry graphql
- "**/*.g.dart"
- "**/*.ast.gql.dart"
- "**/*.gql.dart" # IDEでauto_importを利用したい場合は外す
# freezed
- "**/*.freezed.dart"
# https://www.fluttericon.com/ から生成したファイル
- "**/app_icons.dart" # IDEでauto_importを利用したい場合は外す
errors:
invalid_annotation_target: ignore
language:
strict-casts: true
require_trailing_commas
https://docs.flutter.dev/development/tools/formatting#using-trailing-commas に説明あり
このスクラップは2022/02/23にクローズされました