我一直在尝试在 Android Studio 中为 Flutter 设置大括号。我尝试查看项目设置,但 Dart 不提供样式更改。目前,我的代码如下所示:
class Trial extends StatefulWidget {
const Trial({Key key}) : super(key: key);
@override
_TrialState createState() => _TrialState();
}
class _TrialState extends State<Trial> {
@override
Widget build(BuildContext context) {
return Container();
}
}
但我希望它一直看起来像这样
class Trial extends StatefulWidget
{
const Trial({Key key}) : super(key: key);
@override
_TrialState createState() => _TrialState();
}
class _TrialState extends State<Trial>
{
@override
Widget build(BuildContext context)
{
return Container();
}
}
如何让自动格式化程序在新行上创建大括号?
最佳答案
Dart 尝试格式化代码本身,以便每个开发人员(而不仅仅是您)都保持一致。以便每个人都以同样的方式理解代码并且不会产生困惑。
代码按照 dart sdk 中的 dartfmt 工具进行格式化。 根据代码样式中的文档 https://github.com/dart-lang/dart_style/wiki/FAQ它描述了两点:
我不喜欢这个输出!
首先,这不是一个问题。但是,是的,有时您可能不喜欢格式化程序的输出。这可能是一个错误,也可能是您不同意的格式化程序的故意风格选择。找出问题的最简单方法是提出问题。
现在格式化程序已经相当成熟,输出更有可能是经过深思熟虑的。如果您仍然不满意它对代码的影响,您可以做的最简单的事情就是调整发送的内容。虽然格式化程序试图使所有代码看起来都很棒,但在某些规则中存在权衡。在这些情况下,它倾向于让更常见的习语看起来更好。
如果你的代码最终看起来很糟糕,那么你的代码可能不寻常。通常,将表达式提升到局部变量或取出一个大的 lambda 并将其设为命名函数就可以回到愉快的状态。
为什么我无法配置它?
根据设计,格式化程序支持很少的可调整设置。如果您查看上面的优先级列表,您会发现可配置性直接与前两个优先级相关,并且与第三个优先级相关(您必须考虑它,但不能应用它)。
这可能令人惊讶,但 dartfmt 的目标并不是自动使您的代码看起来像您喜欢的那样。是为了让每个人的Dart代码看起来都一样。 dartfmt 的首要目标是提高 Dart 生态系统的质量。这也间接地改善了每个 Dart 开发人员的生活——您可以获得更多可重用的代码、更一致的代码、更容易阅读和为彼此的代码做出贡献等等。但这是以牺牲个人偏好为代价的。
它要求您相信一致的生态系统比任何人的个人格式偏好更有值(value)。或者,另一种说法是,没有人的个人格式风格明显比 dartfmt 生成的格式更好,足以弥补不一致的成本,并且不得不争论团队的内部风格应该是什么。
如果你不买也没关系。这只是意味着 dartfmt 可能不是适合您的工具。
关于Flutter Android Studio 使大括号换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67837931/