防止 VSCode 保存时自动格式化删除最后的换行符

Prevent VSCode auto format on save from removing final newline

我正在使用 VSCode 的最后一个功能 formatOnSave,它非常酷。
我有一个小问题,格式化程序倾向于删除 json 文件末尾的新行,例如 packages.json

我的 linter 需要文件末尾的那些新行,我也是。

是否有设置或方法允许我告诉格式化程序在文件末尾保留新行?

相关问题:

此选项已添加自 release 1.8 of November 2016:

New editor settings

  • files.insertFinalNewline - automatically add a newline at the end of files when saving.

My linter want those new lines at the end of the file, and me too.

VSCode ESLint 有 an option called autoFixOnSave you could try. Depending on your workflow ESLint CLI 也有一个 --fix 选项,你可以绑定到 git 钩子。

如果您只是在寻找 some sensible defaults,他们是:

"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true,
"files.trimFinalNewlines": true,

如果您希望保留 package.json 中的最后一行并且不影响其他文件类型,请将以下行添加到您的 vs 代码配置中。

  "[json]": {
    "files.insertFinalNewline": true,
    "files.trimFinalNewlines": true,
  }

这基本上告诉 VS 代码

  1. 仅将设置应用于 json 个文件
  2. 在文件末尾插入最后一行
  3. 删除文件末尾的多余行(即只保留 1 个空行)