如何阻止rust-analyzer变暗嵌入式项目中cfg(test)标记的非活跃代码?
解决rust-analyzer默认启用test cfg导致生产代码置灰的问题
方法1:指定嵌入式目标Target匹配项目环境
- 打开VS Code设置(快捷键
Ctrl+,),搜索rust-analyzer.cargo.target - 填入你的嵌入式芯片对应的target,比如
thumbv7em-none-eabihf(根据实际架构调整) - 保存设置后,rust-analyzer会切换到嵌入式目标的编译上下文,
#[cfg(not(test))]的生产代码会自动激活,不会再被置灰
方法2:手动覆盖默认启用的cfg
- 方式一:通过VS Code设置调整
打开VS Code设置,搜索rust-analyzer.cargo.extraArgs,将其设置为["--cfg=not(test)"],强制rust-analyzer不启用test cfg - 方式二:通过项目配置文件全局生效
在项目根目录的.cargo/config.toml中添加以下内容:
这样无论是cargo编译还是rust-analyzer检查,都会默认排除test cfg[build] rustflags = ["--cfg=not(test)"]
方法3:临时切换代码检查模式
- 打开VS Code命令面板(快捷键
Ctrl+Shift+P),输入Rust Analyzer: Switch Active Config - 选择
default模式,即可临时切换到正常编译配置,生产代码恢复高亮
内容的提问来源于stack exchange,提问作者lv4
相关产品推荐
相关产品推荐

