Skip to main content

上下文提及

上下文提及是向 itBuilder 提供项目特定信息的强大方式,使其能够更准确、更高效地执行任务。您可以使用提及来引用文件、文件夹、问题和 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 问题面板中的所有错误和警告
包含文件路径、行号和诊断消息
分组按文件组织问题以获得更好的清晰度
最适合无需手动复制即可修复错误

有关 itBuilder 如何与 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 绕过文件和文件夹 @mentions 在获取上下文内容时绕过 .rooignore 检查。如果直接提及,将包含被忽略文件的内容。
.gitignore 绕过同样,文件和文件夹 @mentions 在获取内容时不遵守 .gitignore 规则。
Git 命令遵守Git 相关提及(@git-changes@commit-hash)确实遵守 .gitignore,因为它们依赖于 Git 命令。

相关功能

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