防止在保存时自动格式化期间删除死代码?

AVI*_*per 8 visual-studio-code

允许文件在保存操作时自动格式化,但停止/禁用/防止 VSCode 删除死代码的神奇配置是什么?

有时,出于调试目的,我想故意在函数中间抛出异常,但被迫注释掉所有以下代码以免将其删除。

更糟糕的是,有时我在编辑器尚未从代码中的某些错误中恢复时进行保存,认为代码仍然包含错误,并导致代码删除,而这本来就不应该发生。我发现自己多次拉起 git 来恢复被错误删除的良好代码。

是否有一个明确的“不删除死代码”选项可以打开?

更新:

  1. 从命令行运行 Prettier(文件的格式化程序)不会删除死代码。
  2. 尝试禁用所有扩展也没有帮助。保存时死代码仍会被删除。

Nik*_*ams 5

source.fixAll还激活 TS 修复,这些修复在某种程度上过于激进,无法在保存时使用。仅启用 eslint 修复source.fixAll.eslint是一个很好的折衷方案 - 它仍然会报告死代码(no-unreachable)但不会删除它。

https://github.com/microsoft/vscode/issues/109530


AVI*_*per 3

案子解决了。

我无法查明导致它的确切包,但它似乎与ESLintPrettier有关。

结果该项目的 Github 存储库包含一个.vscode包含 settings.json 的目录,其中包含以下配置:

{
  "editor.codeActionsOnSave": {
    "source.fixAll": true
  }
}
Run Code Online (Sandbox Code Playgroud)

我已经看到帖子说要添加"source.fixAll": false到VSCode的通用settings.json文件中,但是我这样做并没有效果。

设置标志就false可以了

{
  "editor.codeActionsOnSave": {
    "source.fixAll": false
  }
}
Run Code Online (Sandbox Code Playgroud)

注意:将上述块添加到常规中settings.json也没有效果。我必须修改本地.vscode/settings.json文件才能使其正常工作。