JetBrains Rider代码分析失效 无法显示全解决方案文件错误
故障原因
- 版本默认配置限制:Rider 2022.1.x 分支对C++项目的全解决方案分析默认做了资源保护,不会主动扫描未在编辑器打开的文件,避免大项目首次加载时内存占用过高
- 索引未完成:如果CMake工程或者编译数据库(compile_commands.json)没有完成全量索引,Rider只会对已经加载到编辑器、完成语法解析的文件返回错误结果,未索引文件的错误不会进入全局问题列表
- 面板过滤规则错误:Problems面板的全局标签如果被误设了过滤范围、错误等级过滤,会导致所有结果被筛掉
- 版本已知Bug:2022.1.2版本内置了C全量分析的文件数阈值,默认单解决方案最多扫描50个C/C源文件,超过阈值后扫描任务会自动终止,不会返回任何结果
解决方法
按优先级依次操作即可:
- 调整全量分析基础配置
- 打开设置面板,路径为
File -> Settings -> Editor -> Inspection Settings - 在C/C++ Solution-wide analysis分区,勾选
Enable solution-wide analysis for C++、Scan files that are not opened in the editor两个选项 - 如果你的项目存在跨项目引用的源文件,取消勾选
Limit analysis to files included in opened projects only
- 打开设置面板,路径为
- 重建项目索引
- 在解决方案资源管理器右键点击顶层解决方案节点,选择
Reload All from Disk - 打开
File -> Invalidate Caches...菜单,勾选Clear file system cache and local history、Clear VCS Log caches and indexes两个选项,点击Invalidate and Restart,等待重启后右下角状态栏的索引进度走完再做后续操作
- 在解决方案资源管理器右键点击顶层解决方案节点,选择
- 重置Problems面板过滤规则
- 切换到Problems面板的
All solution files标签,点击标签页右上角的漏斗形过滤按钮 - 将Scope设置为Entire Solution,Severity列表中勾选所有错误等级,取消
Show only problems related to current context选项
- 切换到Problems面板的
- 修复版本专属阈值Bug
- 打开
File -> Settings -> Advanced Settings,找到Solution-Wide Analysis分类 - 将
Maximum number of files to analyze in C++ solution配置项的默认值50修改为大于你项目C/C++源文件总数的数值,填0代表不限制文件数量 - 重启Rider后等待全量扫描完成,即可在All solution files标签看到所有文件的错误信息
- 打开
内容的提问来源于stack exchange,提问作者SadBlackFox
相关产品推荐
相关产品推荐

