dart fix
dart fix
命令查找并修复两种类型的错误
由
dart analyze
识别出的分析错误,这些错误与自动修复相关联(有时称为快速修复或代码操作)。更新到 Dart 和 Flutter SDK 的更新版本时,过时的 API 用法。
应用修复
#要预览建议的更改,请使用 --dry-run
标志
$ dart fix --dry-run
要应用建议的更改,请使用 --apply
标志
$ dart fix --apply
自定义行为
#dart fix
命令仅在通过诊断识别出“问题”时才应用修复。某些诊断(例如编译错误)是隐式启用的,而另一些诊断(例如 linter)必须在 分析选项文件 中显式启用,因为对这些诊断的个人偏好各不相同。
有时可以通过启用其他 linter 来增加可以应用的修复的数量。请注意,并非所有诊断都与修复相关联。
示例
#假设您有以下代码
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 中引入的,因此请更新 pubspec.yaml
以在较低 SDK 约束中至少包含该版本
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
可以修复的错误。如果它找到了需要修复的错误,VS Code 会显示提示以提醒您。
在运行 dart pub get
或 dart pub upgrade
之后,如果包更改添加了 dart fix
可以修复的错误,VS Code 也可能会显示此提示。
在运行 dart fix
之前,请保存所有文件。这将确保 Dart 使用文件的最新版本。
除非另有说明,否则此网站上的文档反映了 Dart 3.5.3。页面最后更新时间为 2024-08-04。 查看源代码 或 报告问题.