诊断集成
Roo Code 通过与 VS Code 的 “问题” 面板集成,可以自动检测、理解并帮助修复代码错误、警告和代码检查问题。它能捕捉编辑代码时引入的新问题,并提供基于诊断信息的上下文感知修复。
Roo Code 通过与 VS Code 的 “问题” 面板集成,可以自动检测、理解并帮助修复代码错误、警告和代码检查问题。它能捕捉编辑代码时引入的新问题,并提供基于诊断信息的上下文感知修复。
概述
此功能与 VS Code 的诊断系统无缝集成,为代码问题提供上下文感知的帮助。当你对代码进行编辑或遇到问题时,Roo Code 可以自动检测并协助解决它们。
关键功能
- 自动错误检测:捕获代码编辑过程中引入的新错误。
- 上下文感知修复:根据诊断信息提供有针对性的修复方案。
- 工作区问题提及:通过一个简单的提及,访问所有工作区诊断。
- 智能过滤:对不同上下文使用预定义的严重级别。
主要功能
1. 自动错误检测
当 Roo Code 对文件进行编辑时,它会自动:
- 在编辑前捕获诊断。
- 在编辑后等待诊断更新。
- 检测由更改引入的新问题。
- 只报告新错误(而不是已有的错误)。
这确保你能立即意识到代码更改引入的任何问题,从而实现快速解决。
2. 工作区问题提及
用户可以在消息中包含 @problems 来:
- 获取工作区错误和警告的完整列表。
- 为调试任务提供上下文。
- 请求修复特定问题。
用法示例:
@problems Debug why the tests are failing.
有关使用 @problems 的更多详细信息,请参阅上下文提及。
3. 代码操作集成
当光标位置存在诊断时:
- “用 Roo Code 修复” 操作会出现在快速修复菜单中。
- 在修复请求中包含诊断详细信息。
- 根据错误上下文提供有针对性的解决方案。
在 代码操作 中了解有关此集成的更多信息。
4. 智能严重性过滤
不同的功能使用不同的严重性过滤器来提供最相关的信息:
| 级别 | 值 | 描述 | 工作区问题 | 自动检测 |
|---|---|---|---|---|
| 错误 | 0 | 语法错误、类型错误、破坏性问题 | ✅ 包含 | ✅ 包含 |
| 警告 | 1 | 代码质量问题、弃用、风格违规 | ✅ 包含 | ❌ 不包含 |
| 信息 | 2 | 建议、提示、信息性消息 | ❌ 不包含 | ❌ 不包含 |
| 提示 | 3 | 次要建议、重构机会 | ❌ 不包含 | ❌ 不包含 |
为什么使用不同的过滤器?
- 工作区问题 (
@problems):包括错误和警告,以便在明确请求时为你提供代码健康的完整视图。 - 自动检测:只包括错误,以避免因非关键问题打断你的工作流程。
有效使用诊断
调试会话
开始调试会话时,包含 @problems 以向 Roo Code 提供完整上下文:
@problems The tests are failing with a TypeError. Help me find the root cause and fix it.
代码审查
使用诊断来确保代码质量:
@problems Review this file for any potential warnings or errors and suggest improvements.
重构
让诊断指导安全重构:
@problems Help me refactor this function without introducing new errors.
与其他功能的集成
代码操作
诊断为出现在 VS Code 灯泡菜单中的上下文感知代码操作提供支持。当出现错误时,你将看到“修复代码”选项,其中包含特定的诊断信息。
上下文提示
@problems 提示 提供了一种方便的方式,可以在对话中包含所有工作区诊断,而无需手动复制错误消息。
自动错误报告
当 Roo Code 编辑文件时,任何引入的新错误都会自动在响应中报告,有助于在整个编辑过程中保持代码质量。
最佳实践
- 使用
@problems获取上下文:调试时,始终包含@problems以让 Roo Code 完全了解当前问题。 - 先解决错误:专注于修复错误,然后是警告,因为错误通常会阻止代码运行。
- 利用代码操作:使用快速修复菜单进行针对特定诊断的修复。
- 监控自动检测:注意编辑后报告的新错误,以便尽早发现问题。
- 与其他工具结合使用:将诊断与其他 Roo Code 功能(如代码库搜索和文件提及)一起使用,以实现全面的问题解决。
故障排除
诊断未出现
- 确保你的语言服务器或代码检查器已正确配置并正在运行。
- 检查文件类型是否受你的诊断提供商支持。
- 验证 VS Code 的“问题”面板是否显示了问题。
@problems 未显示任何内容
- 确认“问题”面板中确实存在问题。
- 检查你是否在正确的工作区。
- 某些诊断提供商可能需要时间来初始化。
自动检测遗漏了错误
- 只报告新错误(由编辑引入的)。
- 已有的错误不会显示在自动检测中。
- 使用
@problems查看所有当前问题。