analysis_options.yamlをカスタマイズする(3)

analysis_options.yamlのカスタマイズ、3回め。
今日はerrorsについてです。

公式ドキュメントはこちら

さて、analysis_options.yamlが面白いなと思うのは、チェック基準を厳しくもできるし、ゆるくもできるところ。

analyzer:
  errors:
    missing_required_param: warning
    missing_return: warning
    todo: ignore
    sdk_version_async_exported_from_core: ignore

errorsに続けてオプションを記述し、[warning, error, info, ignore]を記述することで、チェックツールの挙動をカスタマイズすることができます。

info
An informational message that doesn’t cause analysis to fail. Example: todo
(ざっくり訳) コンパイルエラーを起こさないインフォのこと。 ex. todo

warning
A warning that doesn’t cause analysis to fail unless the analyzer is configured to treat warnings as errors. Example: analysis_option_deprecated
(ざっくり訳)アナライザーがワーニングをエラーと捉えなければコンパイルエラーを起こさないワーニングのこと。ex. analysis_option_deprecated

error
An error that causes analysis to fail. Example: invalid_assignment
(ざっくり訳)コンパイルエラーを起こすエラーのこと。ex. invalid_assignment

たとえばmissing_required_paramsrequiredのプロパティを設定しないとウィジェット(画面)の描画時にエラーが発生するけど、コンパイルエラーは起こさない(warning状態)。

// Paddingはpaddingプロパティが必須(required)
// 指定しないとコンパイルは通るけど、描画しようとすると例外が発生する
Padding hoge() {
    return Padding(
      child: Text('Hello, World!'),
    );
  }

これをerrorに指定すると、同じ記述でもアナライザーがエラーを表示してくれます。 (エラーは表示されるだけで、コンパイルは通ります)。

analyzer:
  errors:
    // errorを指定するとエラーとして表示されるようになる
    missing_required_param: error

missing_returnreturnを記述していない場合の挙動。
ウィジェット生成のファンクションはreturnを指定しなくても動くのですが、明示的にわたすほうが好ましいようです。

ということで今日はここまで、また明日続きからやっていきます!