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

问题描述 投票:0回答:3

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

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

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

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

更新:

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

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

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


4
投票

案件已破。

我无法确定导致该问题的确切包,但它似乎与 ESLintPrettier 有关。

结果该项目的 Github 存储库包含一个

.vscode
目录,其中的 settings.json 包含以下配置:

{
  "editor.codeActionsOnSave": {
    "source.fixAll": true
  }
}

我已经看到帖子说要添加

"source.fixAll": false
到 VSCode 的通用
settings.json
文件中,但是我这样做并没有效果。

将标志设置为

false
就成功了

{
  "editor.codeActionsOnSave": {
    "source.fixAll": false
  }
}

注意:将上述块添加到常规

settings.json
中也没有效果。我必须修改本地
.vscode/settings.json
文件才能使其正常工作。


0
投票

根据@NikoSams答案中引用的问题,您只需将

"allowUnreachableCode": true
添加到您的
tsconfig.json
中,它不会自动删除死代码;您不需要完全禁用文件保存修复。

它没有被列为设置,因为有问题的扩展是内置的打字稿扩展,并且它从您的

tsconfig.json
(如果存在)获取其“设置”。

{
    "compilerOptions": {
        "allowUnreachableCode": true,
        ...
    },
    ...
}

© www.soinside.com 2019 - 2024. All rights reserved.