0

VS Code 版本:1.64.2 Prettier
Extension 版本: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
}

在我的用户 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
}

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

以及以下测试片段:

let                    = "blah"  

但什么都没有发生。该文件 - 之前已保存到文件系统 - 在 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 代码配置 ["INFO" - 8:27:41 PM] 更漂亮的选项:{
    "arrowParens": "always", "bracketSpacing": true, "endOfLine": "lf", "htmlWhitespaceSensitivity": "css ", "insertPragma": false,
    "jsxBracketSameLine": false, "jsxSingleQuote": false,
    "printWidth": 80, "proseWrap": "preserve", "quoteProps": "as-needed", "requirePragma": 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.069 毫秒内完成。

没有错误

4

1 回答 1

0

通过此答案afterDelay,编辑器在选择选项时无法在保存上格式化。它必须是onFocusChangeonWindowChange

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

{
  "editor.formatOnSave": true,
  "editor.defaultFormatter": null,
  "[javascript]": {
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  },
  "files.autoSave": "onFocusChange",
}
于 2022-02-20T02:38:35.693 回答