Prettier 扩展不在文件保存时格式化代码

Prettier extension not formatting code on file save

我已经为 VS Code 安装了 prettier 扩展,将其设置为默认格式化程序,还在 VS Code 的设置文件中将保存格式设置为 true,并且文件设置为在一段时间后自动保存。

"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"files.autoSave": "afterDelay"

但是当文件在延迟 2 秒后自动保存时,prettier 没有格式化我的代码。代码仅在 i:

时被格式化

这是我的 .prettierrc 文件

{
    "trailingComma": "es5",
    "tabWidth": 4,
    "semi": true,
    "singleQuote": true
}

如何在文件保存时自动设置更漂亮的代码格式?

经过一番搜索,我发现下面的设置

"editor.formatOnSave": true

仅在以下情况下有效:

  • 代码格式化程序可用。
  • 文件未设置为延迟保存。
  • 并且编辑器不能关闭。

我使用以下设置将 prettier 设置为默认格式化程序:

"editor.defaultFormatter": "esbenp.prettier-vscode"

但我已将文件设置为在延迟后自动保存,具体如下设置:

"files.autoSave": "afterDelay"

此设置是导致我遇到问题的原因。

"files.autoSave" 设置可以具有以下值之一:

  • "off": 脏编辑器永远不会自动保存。
  • "afterDelay":脏编辑器在配置files.autoSaveDelay后自动保存。
  • "onFocusChange":编辑器失去焦点时自动保存脏编辑器
  • "onWindowChange": 当 window 失去焦点时自动保存脏编辑器。

"files.autoSave" 设置为 "afterDelay" 以外的任何可能值都可以解决此问题。我通过将 "files.autoSave" 设置为 "onFocusChange".

解决了这个问题