正确的颤振/飞镖格式



我正在处理一些flutter代码。代码将右大括号堆叠在同一行上。此外,当我运行";格式化文档";在VSCode中,它还将支架堆叠在一条线上。

像这样(见最后一行(。。。

return Container(
width: 200,
child: CupertinoTextField(
maxLength: 10,
textCapitalization: TextCapitalization.characters,
focusNode: focusNode,
decoration: BoxDecoration(
border: Border.all(color: Colors.white.withOpacity(0))),
style: accentTextStyle,
placeholder: "NAME",
textAlign: TextAlign.center,
keyboardAppearance: Brightness.dark,
controller: _textController,
onChanged: (s) {
navigation.update();
if (s == '') {
program.name = 'UNNAMED${navigation.programsCounter}';
return;
}
program.name = s.toUpperCase();
}));

但在flutter文档和示例代码中,所有示例都使用以下格式(其中大括号位于单独的行上(。

return Container(
width: 200,
child: CupertinoTextField(
maxLength: 10,
textCapitalization: TextCapitalization.characters,
focusNode: focusNode,
decoration: BoxDecoration(
border: Border.all(color: Colors.white.withOpacity(0))),
style: accentTextStyle,
placeholder: "NAME",
textAlign: TextAlign.center,
keyboardAppearance: Brightness.dark,
controller: _textController,
onChanged: (s) {
navigation.update();
if (s == '') {
program.name = 'UNNAMED${navigation.programsCounter}';
return;
}
program.name = s.toUpperCase();
}
)
);

哪种格式合适?此外;格式化文档";使用飞镖扩展来获得正确的格式?

您可以在大括号的末尾使用逗号(,(。然后"设置文档格式"将为每个大括号分隔行。试试这个:

return Container(
width: 200,
child: CupertinoTextField(
maxLength: 10,
textCapitalization: TextCapitalization.characters,
focusNode: focusNode,
decoration: BoxDecoration(
border: Border.all(color: Colors.white.withOpacity(0))),
style: accentTextStyle,
placeholder: "NAME",
textAlign: TextAlign.center,
keyboardAppearance: Brightness.dark,
controller: _textController,
onChanged: (s) {
navigation.update();
if (s == '') {
program.name = 'UNNAMED${navigation.programsCounter}';
return;
}
program.name = s.toUpperCase();
},
),
);

编辑:

好的,你正在寻找合适的方法。正如官方文件中提到的,您应该使用尾随逗号。

为了获得良好的自动格式,我们建议您采用可选的尾部逗号。

您也可以通过在大括号之间添加commas并点击缩进按钮来获得相同的缩进:

  • VS代码:alt + shift + f
  • 安卓工作室:ctrl + alt + l

对我来说非常好:(

添加逗号,如:

onChanged: (s) {
navigation.update();
if (s == '') {
program.name = 'UNNAMED${navigation.programsCounter}';
return;
}
program.name = s.toUpperCase();
},),);

签订后:

onChanged: (s) {
navigation.update();
if (s == '') {
program.name = 'UNNAMED${navigation.programsCounter}';
return;
}
program.name = s.toUpperCase();
},
),
);

我也遇到了同样的问题,@Akif的回答帮我解决了这个问题。确保你在结束语末尾有一个逗号(,格式化程序就会按预期工作。

如果末尾没有逗号,格式化程序将执行以下操作:

void main() => runApp(MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('My First App'),
))));

如果您在末尾添加逗号,结果将如下所示:

void main() => runApp(
MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('My First App'),
),
),
),
);

因此,我想最好总是添加一个逗号,即使只有一个元素用于格式化。

最新更新