诊断集成
Roo Code 与 VSCode 的问题面板进行了智能集成,使 AI 助手能够理解并帮助修复语言服务器、linter 和其他诊断提供程序检测到的代码错误、警告和其他问题。
概述
诊断功能与 VSCode 的诊断系统无缝集成,为代码问题提供上下文感知的辅助。当您编辑代码或遇到问题时,Roo Code 可以自动检测并帮助解决这些问题。
核心能力
- 自动错误检测:捕获代码编辑期间引入的新错误
- 上下文感知修复:基于诊断信息提供有针对性的修复
- 工作区问题提及:通过简单的提及即可访问所有工作区诊断
- 智能过滤:为不同上下文使用预定义的严重性级别
主要功能
1. 自动错误检测
当 Roo Code 编辑文件时,它会自动:
- 编辑前捕获诊断信息
- 编辑后等待诊断更新
- 检测更改引入的新问题
- 仅报告新错误(而非已存在的错误)
这确保您能立即了解代码更改引入的任何问题,从而快速解决。
2. 工作区问题提及
用户可以在消息中包含 @problems 来:
- 获取工作区错误和警告的完整列表
- 为调试任务提供上下文
- 请求修复特定问题
使用示例:
@problems 修复我项目中的所有 TypeScript 错误
有关使用 @problems 的更多详情,请参阅上下文提及。
3. 代码操作集成
当光标位置存在诊断时:
- 快速修复菜单中会显示"使用 Roo Code 修复"操作
- 在修复请求中包含诊断详情
- 基于错误上下文提供有针对性的解决方案
在代码操作中了解此集成的更多信息。
4. 智能严重性过滤
不同功能使用不同的严重性过滤器,以提供最相关的信息:
- 工作区问题提及:显示错误和警告
- 自动检测:仅显示错误(避免干扰)
- 上下文感知:不同功能使用不同的硬编码严重性过滤器
严重性级别
诊断系统识别 VSCode 的四个严重性级别:
| 级别 | 值 | 描述 | 工作区问题 | 自动检测 |
|---|---|---|---|---|
| 错误 | 0 | 语法错误、类型错误、破坏性问题 | ✅ 包含 | ✅ 包含 |
| 警告 | 1 | 代码质量问题、弃用、样式违规 | ✅ 包含 | ❌ 不包含 |
| 信息 | 2 | 建议、提示、信息性消息 | ❌ 不包含 | ❌ 不包含 |
| 提示 | 3 | 轻微建议、重构机会 | ❌ 不包含 | ❌ 不包含 |
为什么使用不同的过滤器?
- 工作区问题 (
@problems):包含错误和警告,在您明确要求时提供代码健康状况的完整视图 - 自动检测:仅包含错误,避免非关键问题中断您的工作流程
有效使用诊断
用于调试会话
开始调试会话时,包含 @problems 以给予 Roo Code 完整上下文:
@problems 帮我调试为什么我的应用程序崩溃
用于代码审查
使用诊断确保代码质量:
@problems 审查我的代码并修复任何 linting 问题
用于重构
让诊断指导安全的重构:
我想重构这个函数。@problems 显示当前需要解决的问题。
与其他功能的集成
代码操作
诊断为 VSCode 灯泡菜单中显示的上下文感知代码操作提供支持。当存在错误时,您会看到包含特定诊断信息的"修复代码"选项。
上下文提及
@problems 提及提供了一种便捷的方式,无需手动复制错误消息即可在对话中包含所有工作区诊断。
自动错误报告
当 Roo Code 编辑文件时,任何新引入的错误都会自动在响应中报告,帮助在整个编辑过程中保持代码质量。
最佳实践
-
使用
@problems获取上下文:调试时始终包含@problems,让 Roo Code 完全了解当前问题 -
优先处理错误:先修复错误再处理警告,因为错误通常会阻止代码运行
-
利用代码操作:使用快速修复菜单对特定诊断进行有针对性的修复
-
监控自动检测:注意编辑后报告的新错误,及早发现问题
-
结合其他工具:将诊断与其他 Roo Code 功能(如代码库搜索和文件提及)结合使用,进行全面的故障排除
故障排除
诊断未出现
- 确保您的语言服务器或 linter 已正确配置并运行
- 检查文件类型是否受您的诊断提供程序支持
- 验证 VSCode 的问题面板是否显示这些问题
@problems 显示为空
- 确认问题面板中确实存在问题
- 检查您是否在正确的工作区
- 某些诊断提供程序可能需要时间初始化
自动检测遗漏错误
- 仅报告新错误(由编辑引入)
- 自动检测不会显示已存在的错误
- 使用
@problems查看所有当前问题