Skip to main content

上下文提及

上下文提是一种强大的方式,可以向 Roo Code 提供有关项目的特定信息,使其能够更准确、更高效地执行任务。你可以使用提及来引用文件、文件夹、问题和 Git 提交。上下文提及以 @ 符号开头。

上下文提及概述 - 显示聊天界面中的 @ 符号下拉菜单

上下文提及概述,显示聊天界面中的 @ 符号下拉菜单。


提及类型

文件提及示例,显示使用 @ 引用文件,其内容出现在对话中

文件提及将实际代码内容添加到对话中,用于直接引用和分析。

提及类型格式描述示例用法
文件@/path/to/file.ts包含文件内容在请求上下文中"解释 @/src/utils.ts 中的函数"
文件夹@/path/to/folder包含文件夹中所有文件的内容(非递归)"分析 @/src/components 中的代码"
问题@problems包含 VS Code 问题面板的诊断信息"@problems 修复我代码中的所有错误"
终端@terminal包含最近的终端命令和输出"修复 @terminal 中显示的错误"
Git 提交@a1b2c3d通过哈希引用特定提交"提交 @a1b2c3d 中有什么变化?"
Git 变更@git-changes显示未提交的变更"为 @git-changes 建议一条提交消息"
URL@https://example.com导入网站内容"总结 @https://docusaurus.io/"

文件提及

文件提及示例,显示使用 @ 引用文件,其内容出现在对话中

文件提及将带行号的源代码纳入上下文,用于精确定位。

功能详细信息
格式@/path/to/file.ts(始终从工作区根目录开始以 / 开头)
提供完整的文件内容和行号
支持文本文件、PDF 和 DOCX 文件(带文本提取)
适用场景初始请求、反馈响应和后续消息
限制非常大的文件可能被截断;不支持二进制文件

文件夹提及

文件夹提及示例,显示目录内容在聊天中被引用

文件夹提及包含指定目录中所有文件的内容。

功能详细信息
格式@/path/to/folder(无尾随斜杠)
提供目录中所有文件的完整内容
包含直接位于文件夹内的非二进制文本文件的内容(非递归)
最佳用途从目录中的多个文件提供上下文
提示引用大型目录时要注意上下文窗口限制

问题提及

问题提及示例,显示 VS Code 问题面板使用 @problems 在聊天中被引用

问题提及直接从 VS Code 问题面板导入诊断信息。

功能详细信息
格式@problems
提供VS Code 问题面板中的所有错误和警告
包含文件路径、行号和诊断消息
分组问题按文件组织,以便更清晰
最佳用途无需手动复制即可修复错误

有关 Roo Code 如何与 VSCode 诊断系统集成的详细信息,请参阅 诊断集成

终端提及

终端提及示例,显示终端输出被包含在 Roo 的上下文中

终端提及捕获最近的命令和完整输出,用于调试和分析。

功能详细信息
格式@terminal
捕获最后一条命令及其完整输出
保留终端状态(不清空终端)
限制仅限于可见的终端缓冲区内容
最佳用途调试构建错误或分析命令输出

Git 提及

Git 提交提及示例,显示提交详细信息被 Roo 分析

Git 提及提供提交消息和差异,用于上下文感知的版本分析。

类型格式提供限制
提交@a1b2c3d提交消息、作者、日期和完整差异仅在 Git 仓库中工作
工作变更@git-changesgit status 输出和未提交变更的差异仅在 Git 仓库中工作

URL 提及

URL 提及示例,显示网站内容被转换为 Markdown 格式在聊天中显示

URL 提及导入外部网页内容并将其转换为可读的 Markdown 格式。

功能详细信息
格式@https://example.com
处理使用无头浏览器获取内容
清理删除脚本、样式和导航元素
输出将内容转换为 Markdown 以提高可读性
限制复杂页面可能无法完美转换

如何使用提及

  1. 在聊天输入框中键入 @ 以触发建议下拉菜单
  2. 继续键入以筛选建议,或使用箭头键导航
  3. 按 Enter 键或单击鼠标选择
  4. 在请求中组合多个提及:"修复 @/src/component.ts 中的 @problems"

下拉菜单会自动建议:

  • 最近打开的文件
  • 可见的文件夹
  • 最近的 git 提交
  • 特殊关键字(problemsterminalgit-changes
  • 所有当前打开的文件(无论忽略设置或目录过滤器如何)

下拉菜单会自动过滤掉常见的目录,如 node_modules.gitdistout,以减少干扰,即使手动键入时仍可包含其内容。


重要行为

忽略文件交互

行为描述
.rooignore 绕过文件和文件夹的 @提及 在为上下文获取内容时会绕过 .rooignore 检查。如果直接提及,来自被忽略文件的内容将被包含。
.gitignore 绕过类似地,文件和文件夹的 @提及 在获取内容时不会遵守 .gitignore 规则。
Git 命令遵守Git 相关的提及(@git-changes@commit-hash)会遵守 .gitignore,因为它们依赖于 Git 命令。

相关功能

  • 诊断集成 - 了解自动错误检测和智能严重性过滤
  • 代码操作 - 发现直接在编辑器中的快速修复和 AI 辅助
  • Shell 集成 - 了解终端提及如何与 Shell 集成配合工作