有没有办法阻止 rust-analyzer 使“非活动”代码变暗?

lv4*_*lv4 5 rust rust-analyzer

我目前正在制作一个嵌入式系统。为此,我有 2 个不同的恐慌处理程序,具体取决于它是正常运行还是作为测试运行。 #[cfg(test)] 对于测试恐慌处理程序和 #[cfg(not(test))] 正常恐慌处理程序。

rust-analyzer 说:由于 #[cfg] 指令,代码处于非活动状态:测试已启用

并使该功能变灰。测试从未明确设置,因此我不能只是更改它,而且我不想禁用工作区中灰显的非活动代码。

有没有办法禁用 rust-analyzer 检查测试 cfg,或者仅针对此功能禁用灰色

我尝试查找有关测试标志的信息,但找不到任何信息,如果它很重要,我正在使用 VS Code

Cha*_*man 4

在 VSCode 的工作区设置中,设置以下内容:

"rust-analyzer.cargo.extraEnv": {
  "RUSTFLAGS": "--cfg rust_analyzer"
}
Run Code Online (Sandbox Code Playgroud)

这将启用#[cfg(rust_analyzer)]rust-analyzer 元数据检查。

然后,替换#[cfg(not(test))]#[cfg(any(not(test), rust_analyzer))]#[cfg(test)]#[cfg(all(test, not(rust_analyzer)))]。这将照常禁用和启用测试功能,但在 rust-analyzer 中运行时,仅启用无测试功能。

重要提示:只有当您不需要RUSTFLAGS为您的工作区进行特殊设置时,这才有效。