Open4

analysis_options.yamlとは?

muranakarmuranakar

静的解析ツール(Dart Analyzer)の設定ファイルである。

muranakarmuranakar

設定可能な項目のリストを調べていく。

  1. linter: rules: セクション:
linter:
  rules:
    - camel_case_types      # クラス名はキャメルケースを強制 (例: MyClass は OK、my_class は NG)
    - avoid_print           # print文の使用を警告 (本番環境では適切なログ機能を使用すべき)
    - prefer_single_quotes  # 文字列はシングルクォートを推奨 ('hello' は OK、"hello" は警告)
  1. analyzer: exclude: セクション:
analyzer:
  exclude:
    - "**/*.g.dart"  # .g.dart で終わるすべての自動生成ファイルを解析対象から除外
                     # ** はすべてのディレクトリを意味する
  1. analyzer: errors: セクション:
errors:
  unused_local_variable: warning  # 使用されていないローカル変数を警告レベルで通知
  missing_return: error          # return文が必要な場所で欠落している場合をエラーとして扱う

# エラーレベルの種類:
# - error: エラーとして扱う(ビルドが失敗)
# - warning: 警告として扱う(ビルドは成功)
# - info: 情報として表示
# - ignore: 完全に無視
  1. analyzer: language: セクション:
language:
  strict-inference: true     # 型推論をより厳密に行う
                            # var x = 1; のような暗黙的な型推論をより厳密にチェック
  
  strict-raw-types: true    # ジェネリック型の使用をより厳密にチェック
                            # List<dynamic> の代わりに List<int> のような具体的な型の指定を促す
  1. よく使用される追加のルール例:
linter:
  rules:
    - always_declare_return_types  # 関数の戻り値の型を常に明示
    - avoid_empty_else            # 空のelse文を禁止
    - avoid_relative_lib_imports  # パッケージ内の相対インポートを避ける
    - sort_constructors_first     # コンストラクタをクラス定義の先頭に配置
    - prefer_const_constructors   # 可能な場合はconstコンストラクタを使用