dart fix
dart fix
コマンドは、2種類のIssueを検出して修正します。
dart analyze
によって識別された、自動修正(クイックフィックスまたはコードアクションと呼ばれることもあります)に関連付けられた分析Issue。DartおよびFlutter SDKの新しいリリースに更新する際の、古いAPIの使用。
修正を適用する
#提案された変更をプレビューするには、--dry-run
フラグを使用します。
$ dart fix --dry-run
提案された変更を適用するには、--apply
フラグを使用します。
$ dart fix --apply
動作をカスタマイズする
#dart fix
コマンドは、診断によって「問題」が識別された場合にのみ修正を適用します。コンパイルエラーなどの一部の診断は暗黙的に有効になっていますが、lintなど、その他は分析オプションファイルで明示的に有効にする必要があります。これは、これらの設定はユーザーごとに異なるためです。
追加のlintを有効にすることで、適用できる修正の数を増やすことができます。ただし、すべての診断に修正が関連付けられているわけではありません。
例
#このようなコードがあるとします。
class Vector2d {
final double x, y;
Vector2d(this.x, this.y);
}
class Vector3d extends Vector2d {
final double z;
Vector3d(final double x, final double y, this.z) : super(x, y);
}
Dart 2.17では、スーパーイニシャライザと呼ばれる新しい言語機能が導入されました。これにより、よりコンパクトなスタイルでVector3d
のコンストラクタを作成できます。
class Vector3d extends Vector2d {
final double z;
Vector3d(super.x, super.y, this.z);
}
この機能を使用するように既存のコードをアップグレードし、後でこの機能の使用を忘れた場合にアナライザーが警告するようにdart fix
を有効にするには、analysis_options.yaml
ファイルを次のように設定します。
linter:
rules:
- use_super_parameters
また、必要な言語バージョンを有効にすることも必要です。スーパーイニシャライザはDart 2.17で導入されたため、下限のSDK制約に少なくともそれ以上を指定するようにpubspec.yaml
を更新します。
environment:
sdk: ">=2.17.0 <4.0.0"
提案された変更を表示すると、次のようになります。
$ dart fix --dry-run
Computing fixes in myapp (dry run)... 9.0s
1 proposed fixes in 1 files.
lib/myapp.dart
use_super_parameters • 1 fix
分析結果と動作のカスタマイズの詳細については、静的解析のカスタマイズを参照してください。
VS Codeのサポート
#VS Codeでプロジェクトを開くと、Dartプラグインはdart fix
で修復できるIssueがないかプロジェクトをスキャンします。修復可能なIssueが見つかった場合、VS Codeにはそれを思い出させるプロンプトが表示されます。

dart pub get
またはdart pub upgrade
を実行した後、パッケージの変更によってdart fix
で修復できるIssueが追加された場合にも、VS Codeにこのプロンプトが表示される場合があります。
dart fix
を実行する前に、すべてのファイルを保存してください。これにより、Dartは最新のファイルバージョンを使用します。
特に明記されていない限り、このサイトのドキュメントはDart 3.5.3を反映しています。ページの最終更新日:2024年8月4日。 ソースを表示 または Issueを報告する。