Android studio Android Studio-Dart代码格式化问题

Android studio Android Studio-Dart代码格式化问题,android-studio,dart,flutter,Android Studio,Dart,Flutter,我在Android Studio的代码格式化设置中尝试了不同的配置,但到目前为止,结果非常令人失望(并且令人振奋) 这是重新格式化代码在没有dartfmt工具的情况下所做的操作(注意第94-110行): dartfmt在这方面做得更好,但是缩进很糟糕(第91-96行),并且与似乎没有为其配置的设置非常不一致: 这就是我希望它看起来的样子: 要实现这一点,我需要更改哪些设置?目前很难读取代码。您无法配置dartfmt。这是自愿的。但是,dartfmt使用尾随逗号作为核心来确定换行符的位置 以

我在Android Studio的代码格式化设置中尝试了不同的配置,但到目前为止,结果非常令人失望(并且令人振奋)

这是
重新格式化代码
在没有
dartfmt
工具的情况下所做的操作(注意第94-110行):

dartfmt
在这方面做得更好,但是缩进很糟糕(第91-96行),并且与似乎没有为其配置的设置非常不一致:

这就是我希望它看起来的样子:


要实现这一点,我需要更改哪些设置?目前很难读取代码。

您无法配置
dartfmt
。这是自愿的。但是,
dartfmt
使用尾随逗号作为核心来确定换行符的位置

以下是:

foo({String foo, String bar}) {}

void main() {
  foo(foo: "Hello", bar: "Hello");
}
运行
dartfmt
时将保持不变

但只需切换到
foo
调用:

  ...bar: "Hello",);
将其重新格式化为:

foo({String foo, String bar}) {}

void main() {
  foo(
    foo: "Hello",
    bar: "Hello",
  );
}

深度嵌套代码的格式化非常具有挑战性,当行中的剩余空间变得太短时,无法对其余代码进行更好的格式化

最好避免深入嵌套的代码,而是将部分重构到它们自己的函数/方法中,或者如果是颤振构建方法,则重构到小部件中


如果您仍然认为该行为无效,请以dart lang/dart_风格创建一个问题,维护人员很可能会给出一个深刻的回答。

为时已晚,但这会有所帮助

在Android Studio中,转到

文件>设置>编辑器>代码样式>省道


并且增加行长的值。

我不确定这与
dartfmt的缩进有什么关系,因为您想要的输出可以通过在没有放置第91-96行的地方添加一个尾随逗号来实现,因为实际上没有任何代码可以放置尾随逗号。我希望缩进总是4个空格,而不是有时4,有时2,你不能改变这样的东西。但这将解决括号的问题。考虑到内部格式化程序一直适用于Java和PHP,我很惊讶内部格式化程序也不能正确格式化它。但是我想没有太多其他的东西了,嗯,Java在过去太久了。当时没有关闭。不知道现在是否可以用Java编写类似的代码。如前所述,如果您想要更深刻的答案,请创建一个问题。Bob通常会解释起作用的规则以及出于什么原因接受的权衡。不过他最近有点忙得不可开交,所以没有承诺。