VS Code 自动保存 afterDelay w/Prettier 不起作用

Maj*_*ons 4 json visual-studio-code prettier prettier-vscode

VS Code 版本:1.64.2
Prettier 扩展版本:9.2.0

我希望 Prettier 能够自动保存一次,应该每 500 毫秒一次。我的工作区 JSON 中有以下内容:

{
  "editor.formatOnSave": true,
  "editor.defaultFormatter": null,
  "[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode",
  },
  "prettier.trailingComma": "all",
  "files.autoSave": "afterDelay",
  "files.autoSaveDelay": 500
}
Run Code Online (Sandbox Code Playgroud)

我的用户 JSON 中也是如此:

{
  "workbench.colorTheme": "Darcula",
  "workbench.iconTheme": "material-icon-theme",
  "editor.formatOnSave": true,
  "editor.defaultFormatter": null,
  "[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "prettier.trailingComma": "all",
  "files.autoSave": "afterDelay",
  "files.autoSaveDelay": 500
}
Run Code Online (Sandbox Code Playgroud)

注意:这是两个 JSON 文件的全部内容。设置中没有列出其他格式化程序。

以及以下测试片段:

let                    = "blah"  
Run Code Online (Sandbox Code Playgroud)

但什么也没发生。该文件(之前已保存到文件系统)在 500 毫秒后未以当前状态保存,因此 Prettier 未运行。

我很茫然,任何帮助将不胜感激。

编辑:手动保存(例如ctrl+ s)具有以下输出:

[“INFO” - 8:27:41 PM] 格式化文件:///c%3A/Users/Kevin/Documents/Programming%20Stuff/JS/scratchpad.js [“INFO” - 8:27:41 PM] 使用忽略 c:\Users\Kevin\Documents\Programming Stuff\JS.prettierignore ["INFO" 中的文件(如果存在)

  • 8:27:41 PM] 文件信息:{ "ignored": false, "inferredParser": "babel" } ["INFO" - 8:27:41 PM] 未检测到本地配置(即 .prettierrc 或 .editorconfig),回到 VS Code 配置 ["INFO" - 8:27:41 PM] 更漂亮的选项:{
    "arrowParens": "always", "bracketSpacing": true, "endOfLine": "lf", "htmlWhitespaceSensitivity": "css ", "insertPragma": false,
    "jsxBracketSameLine": false, "jsxSingleQuote": false,
    "printWidth": 80, "proseWrap": "保留", "quoteProps": "按需", "requirePragma": false, "semi": true,
    "singleQuote": false, "tabWidth": 2, "trailingComma": "all",
    "useTabs": false, "vueIndentScriptAndStyle": false, "filepath": "c:\Users\Kevin\ Documents\Programming Stuff\JS\scratchpad.js",
    "parser": "babel" } ["INFO" - 8:27:41 PM] 格式化在 0.069ms 内完成。

没有错误

Maj*_*ons 7

根据这个答案afterDelay,选择该选项时编辑器无法在保存时格式化。它必须是onFocusChangeonWindowChange

例如,像这样的用户级 JSON 文件就可以工作。当焦点离开编辑器时(例如,单击另一个打开的文件),它将自动保存并格式化文件:

{
  "editor.formatOnSave": true,
  "editor.defaultFormatter": null,
  "[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "files.autoSave": "onFocusChange",
}
Run Code Online (Sandbox Code Playgroud)