【Flutter】Linterの設定は公式パッケージで決まり

Flutter

こんにちは。趣味グラマのNobu(@nm_aru)です。

Linter使ってますか?

Linterを使えば、自動的にコードのチェックをしてくれるので、一定レベルの綺麗さやルールを保ったコードを書く事が出来ますが、プロジェクトの初期から入れておかないと、後で地獄を見る事になります。

過去にLinterを設定した時は、日本のFlutter界の神的存在(?)の@_monoさんが作成して下さったパッケージを使っていたので、今回もそれを使おうと思ったところ、なんとFlutterのバージョンアップによって公式のLinterパッケージが同梱されるようになっていました。

Introducing package:flutter_lints
Migrate to package:flutter_lints to get the latest set of recommended lints, which encourage good coding practices.

Flutterのバージョン2.3.0-12.0.preから、公式パッケージが使えるようになったそうです。

公式Linterパッケージの使い方

使い方は簡単です。

analysis_options.yamlの先頭に以下の行を書くだけです。

include: package:flutter_lints/flutter.yaml

手元のFlutter 2.5.3だと新規プロジェクトを作った段階で、上記の行が最初から挿入されていたので、今後は特に意識する事なくLinterが使えるようになったようです。

Linterの解析対象外を設定する

Linterを使っていると、どうしても解析対象外にしたいルールが出てくる時があります。

Linterの解析対象外にする方法は大きく3つありますので、上手く使い分けることで、ストレスゼロのLinter生活が営めます。

行単位で特定のルールを解析対象外にする

ある行に対してのみ特定のルールを対象外にする場合は、その行の直前に対象外にしたいルールをコメントで記述します。

ルールが複数ある場合は、カンマで区切って記述します。

// ignore: invalid_assignment, const_initialized_with_non_constant_value
const x = y;

ファイル単位で特定のルールを解析対象外にする

ファイル全体を特定のルールの対象外にする場合は、ファイルのどこかにコメントで記述します。

どこかに記述すれば、そのコメントの前後全てが解析対象外になります。

行単位の場合と同様、ルールが複数ある場合は、カンマで区切って記述します。

// ignore_for_file: unused_local_variable, duplicate_ignore, dead_code

自動生成されるファイルを解析対象外にする

Linterを使っていて困るのは、自動生成されるファイルに対して警告が表示される時です。

自動生成されるファイルは、上述のコメント形式で対応しても、再度ファイルが生成されるとコメントが消えてしまうので無効になっていします。

そういう時は、analysis_options.yamlにexcludeを指定する事で、解析対象外にする事が出来ます。

include: package:flutter_lints/flutter.yaml
analyzer:
〜省略〜
  exclude: 
    - lib/app.dart
    - lib/flavors.dart
    - lib/main-*
    - lib/pages/my_home_page.dart
linter:
  rules:
    - always_declare_return_types
〜省略〜

詳しくはDart公式ドキュメントに説明があります。

Customizing static analysis
Use an analysis options file and code comments to customize static analysis.

まとめ

設定しておくだけで、コードをある程度綺麗に保つ手伝いをしてくれるLinterは、趣味グラマにとっても職業プログラマにとっても強い味方です。

ぜひ有効活用していきたいですね(^^)

コメント

タイトルとURLをコピーしました