Skip to main content

诊断集成

Roo Code 提供与 VSCode 问题面板的智能集成,使 AI 助手能够理解并帮助修复由语言服务器、代码检查工具和其他诊断提供者检测到的代码错误、警告和其他问题。


概述

诊断功能与 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 审查我的代码并修复任何代码检查问题

用于重构

让诊断指导安全重构:

我想重构这个函数。@problems 显示了需要解决的当前问题。

与其他功能的集成

代码操作

诊断为上下文感知的 代码操作 提供支持,这些操作出现在 VSCode 的灯泡菜单中。当存在错误时,您会看到"修复代码"选项,其中包含特定的诊断信息。

上下文提及

@problems 提及 提供了一种方便的方法,将所有工作区诊断包含在对话中,而无需手动复制错误消息。

自动错误报告

当 Roo Code 编辑文件时,引入的任何新错误都会在响应中自动报告,帮助在整个编辑过程中保持代码质量。


最佳实践

  1. 使用 @problems 获取上下文:调试时,始终包含 @problems 以向 Roo Code 提供完整的可见性

  2. 优先解决错误:首先关注修复错误,然后再处理警告,因为错误通常会阻止代码运行

  3. 利用代码操作:使用快速修复菜单进行针对特定诊断的修复

  4. 监控自动检测:注意编辑后报告的新错误,以便及早发现问题

  5. 结合其他工具:将诊断与其他 Roo Code 功能(如代码库搜索和文件提及)结合使用,进行全面的问题解决


故障排除

诊断未出现

  • 确保您的语言服务器或代码检查工具已正确配置并正在运行
  • 检查文件类型是否受您的诊断提供者支持
  • 验证 VSCode 的问题面板是否显示问题

@problems 显示为空

  • 确认问题面板中确实存在问题
  • 检查您是否在正确的工作区中
  • 某些诊断提供者可能需要时间初始化

自动检测遗漏错误

  • 仅报告新错误(由编辑引入)
  • 预先存在的错误不会在自动检测中显示
  • 使用 @problems 查看所有当前问题

相关功能