有没有办法用 vscode 自动格式化颤振?

Posted

技术标签:

【中文标题】有没有办法用 vscode 自动格式化颤振?【英文标题】:Is there a way to auto-format flutter with vscode? 【发布时间】:2021-02-16 13:13:34 【问题描述】:

我想知道是否有像 Eslint 这样的 Flutter/Dart 库,当我保存文件时会自动插入分号和尾随逗号。

FLutter 版本:1.22.3 飞镖版本:2.10.3

【问题讨论】:

【参考方案1】:

使用 VS Code 1.53 版(我相信以前也有这个)你不需要安装任何特殊的扩展。只需导航到:

首选项 -> 设置 -> 文本编辑器 -> 格式

确保启用“保存时格式化”

每次您点击Ctrl + S,您的文件都会被保存并格式化代码。

【讨论】:

【参考方案2】:
    安装flutter 扩展。 在settings.json 文件中追加或修改这些行:
"[dart]": 
    "editor.defaultFormatter": "Dart-Code.dart-code",
    "editor.formatOnSave": true,

之后,您可以使用保存 (ctrl+s) 操作格式化您的 dart 文件。

【讨论】:

在上述所有处方中,这对我有用。非常感谢 这很好用。 【参考方案3】:

您可以使用这样的一个命令格式化每个颤振文件...

 flutter format . -l 120

它设置了我相信的行长,作为副作用,它会格式化你所有的代码

【讨论】:

美丽。谢谢你的这个命令。要把这个答案加入书签。【参考方案4】:

文档中有 Code Formatting 帮助区域。有 VsCode Here 的部分。它解释了

要自动格式化当前源代码窗口中的代码,请在代码窗口中单击鼠标右键并选择“格式化文档”。您可以为此 VS Code Preferences 添加键盘快捷键。

安装 Flutter 扩展后。

我还发现了另一篇 Stack Overflow 帖子 Here,它可能会为您提供一些扩展建议以及为/在 VsCode 中创建自己的绑定的方法。

【讨论】:

为 Flutter 开发设置 VSCode 的说明是here @AdamKern 链接也很好。我只是想直接链接到 CodeFormatting 部分。这些链接应该可以解决我认为的问题。 如果按“ctrl + ”,则显示缺少分号的错误。它建议我插入一个“;”但它不会像 Eslint 在 javascript 上工作一样在保存时自动修复它.. @FabioDias 我更新了我的答案以链接到另一个 SO 帖子,其中有一些关于如何配置 VsCode 以支持您想要的分号自动完成的建议。 似乎无法像 Eslint 对 javascript 那样进行格式化。【参考方案5】:

实际上可选的冒号是允许自动格式化的...我不确定在行尾自动使用冒号或分号是否真的有帮助,因为它可能会有所不同,而且我不知道有扩展名可以有效地做到这一点(除了具有某种其他快捷方式)...

因此,尽管它不能完全回答您的问题,但它可能会帮助其他用户了解如何格式化他们的颤振代码:如果您有所有可选的冒号,最好的方法是运行颤振插件中包含的命令。从终端运行flutter format lib,它将格式化 lib 目录和子目录中的所有 dart 文件。您可以将lib 更改为您喜欢的任何目录。

最后,您可以添加一些扩展名并激活一些插件以获得可读性强的文件。但这是个人欣赏的问题。我个人使用:Bracket Pair Colorizer 2Indent-Rainbow 并激活 flutter outline 的两个 dart 选项以获得此结果:

【讨论】:

【参考方案6】:

在 Extensions 中,搜索 [Prettier - Code formatter]

点击 ctrl+S 后,它会格式化您的代码

【讨论】:

【参考方案7】:

如果此图像显示时没有来自 vs 代码的栏 bar vs code

进入首选项 -> 设置 并寻找 -> 默认格式化程序

setting 然后换成 Dart 就完成了

【讨论】:

【参考方案8】:

我在 VSCode 上短暂使用过,现在又尝试 Intellij,但请记住热键组合是: ctrl + shift + i。我不知道它是 ctrl+shift+L 还是 i,但很确定它是 i。正如 Flutter.dev 文档所说,尾随逗号也有助于格式化程序完成其工作。

【讨论】:

【参考方案9】:

你可以使用官方文档https://flutter.dev/docs/development/tools/formatting中提到的这个命令

flutter format .

【讨论】:

以上是关于有没有办法用 vscode 自动格式化颤振?的主要内容,如果未能解决你的问题,请参考以下文章

VSCode格式化,单引号变双引号的解决办法

vscode在报错时候自动格式化代码

vscode格式化Vue出现的问题

用vscode写html代码打开谷歌浏览器怎么没有内容?写代码的格式对的啊!

vscode代码自动代码格式化(添加分号)

在vscode上vue保存格式化时存在的问题