dart fix
dart fix
命令查找并修复两种类型的问题
dart analyze
识别出的具有关联自动修复(有时称为快速修复或代码操作)的分析问题。在更新到较新版本的 Dart 和 Flutter SDK 时过时的 API 用法。
应用修复
#要预览建议的更改,请使用 --dry-run
标志
$ dart fix --dry-run
要应用建议的更改,请使用 --apply
标志
$ dart fix --apply
自定义行为
#只有在诊断识别出“问题”时,dart fix
命令才会应用修复。某些诊断,如编译错误,是隐式启用的,而另一些诊断,如 lints,必须在分析选项文件中显式启用,因为这些诊断的个人偏好各不相同。
有时,您可以通过启用额外的 lints 来增加可以应用的修复数量。请注意,并非所有诊断都有关联的修复。
示例
#假设您有如下代码
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.6.0。页面最后更新于 2024-12-10。 查看源代码 或 报告问题。