上下文提示
了解如何在 Roo Code 中使用上下文提示 (@) 来引用文件、文件夹、问题、终端输出和 Git 提交,以获得更准确的 AI 帮助。
上下文提示是一种强大的方式,可以为 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 问题面板中的所有错误和警告 |
| 包含 | 文件路径、行号和诊断消息 |
| 分组 | 按文件组织问题,以提高清晰度 |
| 最适合 | 无需手动复制即可修复错误 |
有关 Roo Code 如何与 VS Code 的诊断系统集成的全面详细信息,请参阅 诊断集成。
终端提示
终端提示捕获最近的命令输出以进行调试和分析。
| 功能 | 详情 |
|---|---|
| 格式 | @terminal |
| 捕获 | 上一个命令及其完整输出 |
| 保留 | 终端状态(不清除终端) |
| 限制 | 仅限于可见的终端缓冲区内容 |
| 最适合 | 调试构建错误或分析命令输出 |
Git 提示
Git 提示提供提交详细信息和差异,以进行上下文感知的版本分析。
| 类型 | 格式 | 提供 | 限制 |
|---|---|---|---|
| 提交 | @a1b2c3d | 提交消息、作者、日期和完整差异 | 仅在 Git 存储库中有效 |
| 工作更改 | @git-changes | git status 输出和未提交更改的差异 | 仅在 Git 存储库中有效 |
URL 提示
URL 提示导入外部网页内容并将其转换为可读的 Markdown 格式。
| 功能 | 详情 |
|---|---|
| 格式 | @https://example.com |
| 处理 | 使用无头浏览器获取内容 |
| 清理 | 删除脚本、样式和导航元素 |
| 输出 | 将内容转换为 Markdown 以提高可读性 |
| 限制 | 复杂页面可能无法完美转换 |
如何使用提示
- 在聊天输入框中键入
@以触发建议下拉列表 - 继续键入以筛选建议,或使用箭头键导航
- 使用
Enter键或鼠标单击进行选择 - 在一个请求中组合多个提示:“Fix
@problemsin@/src/component.ts中的问题”
下拉列表自动建议:
- 最近打开的文件
- 可见的文件夹
- 最近的 Git 提交
- 特殊关键字(
problems、terminal、git-changes) - 所有当前打开的文件(无论忽略设置或目录筛选器如何)
下拉列表会自动筛选出 node_modules、.git、dist 和 out 等常见目录以减少干扰,尽管如果手动键入,它们的内容仍然可以被包含。
重要行为
忽略文件交互
| 行为 | 描述 |
|---|---|
.rooignore 绕过 | 文件和文件夹 @mentions 在获取上下文内容时会绕过 .rooignore 检查。如果直接提示,来自被忽略文件的内容将被包含。 |
.gitignore 绕过 | 类似地,文件和文件夹 @mentions 在获取内容时不会遵守 .gitignore 规则。 |
| Git 命令遵守 | 与 Git 相关的提示(@git-changes、@commit-hash)确实会遵守 .gitignore,因为它们依赖于 Git 命令。 |