首页 > 解决方案 > 更漂亮的扩展在文件保存时不格式化代码

问题描述

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

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

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

这是我的.prettierrc文件

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

如何在文件保存时自动使我的代码更漂亮地格式化?

标签: visual-studio-codeformattingprettier

解决方案


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

"editor.formatOnSave": true

仅在以下情况下有效:

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

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

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

但我已将文件设置为在以下设置中指定的延迟后自动保存:

"files.autoSave": "afterDelay"

在我的情况下,此设置是问题的原因。

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

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

设置"files.autoSave"为任何可能的值,而不是"afterDelay"解决问题。我通过设置解决了这个"files.autoSave"问题"onFocusChange"


推荐阅读