上下文提及
在 Bob 对话中使用 @ 提及直接引用项目的特定元素,以获得精确、上下文感知的帮助。
提及类型
使用上下文提及,您可以引用项目的各种元素:
| 提及类型 | 格式 | 描述 | 示例用法 |
|---|---|---|---|
| 文件 | @/path/to/file.ts | 在请求上下文中包含文件内容 | 解释 @/src/utils.ts 中的函数 |
| 文件夹 | @/path/to/folder | 包含文件夹中所有文件的内容(非递归) | 分析 @/src/components 中的代码 |
| 问题 | @problems | 包含 IBM Bob 问题面板诊断 | @problems 修复我代码中的所有错误 |
| 终端 | @terminal | 包含最近的终端命令和输出 | 修复 @terminal 中显示的错误 |
| Git 提交 | @a1b2c3d | 通过哈希引用特定提交 | 提交 @a1b2c3d 中更改了什么? |
| Git 更改 | @git-changes | 显示未提交的更改 | 为 @git-changes 建议一条消息 |
| URL | @https://example.com | 导入网站内容 | 总结 @https://docusaurus.io/ |
文件提及
文件提及是最常用的类型,让您可以在与 Bob 的对话中包含特定文件的内容。
| 功能 | 详细信息 |
|---|---|
| 格式 | @/path/to/file.ts(始终从工作区根目录以 / 开头) |
| 提供 | 带有行号的完整文件内容 |
| 适用于 | 文本文件、PDF 和 DOCX 文件(带文本提取) |
| 适用于 | 初始请求、反馈响应和后续消息 |
| 限制 | 非常大的文件可能会被截断;不支持二进制文件 |
对于大文件,您可以通过使用文件路径后跟行号来提及特定部分,例如 @/src/app.js:10-20 仅包含第 10-20 行。
文件夹提及
使用文件夹提及,您可以一次引用多个文件,从目录提供更广泛的上下文。
| 功能 | 详细信息 |
|---|---|
| 格式 | @/path/to/folder(无尾部斜杠) |
| 提供 | 目录中所有文件的完整内容 |
| 包括 | 文件夹中非二进制文本文件的内容(非递归) |
| 最适合 | 从目录中的多个文件提供上下文 |
| 提示 | 提及大型目录时要注意上下文窗口限制 |
文件夹提及是非递归的,这意味着它们仅包含指定文件夹中的文件,而不包含子文件夹中的文件。
问题提及
问题提及从 IBM Bob 的问题面板导入诊断,帮助您一次解决多个问题。
| 功能 | 详细信息 |
|---|---|
| 格式 | @problems |
| 提供 | IBM Bob 问题面板中的所有错误和警告 |
| 包括 | 文件路径、行号和诊断消息 |
| 分组 | 按文件组织的问题以获得更好的清晰度 |
| 最适合 | 修复错误而无需手动复制 |
示例用法: @problems 你能帮我修复所有这些问题吗?
终端提及
终端提及捕获最近的命令输出,帮助您调试构建错误或分析命令结果。
| 功能 | 详细信息 |
|---|---|
| 格式 | @terminal |
| 捕获 | 最后一个命令及其完整输出 |
| 保留 | 终端状态(不清除终端) |
| 限制 | 限于可见的终端缓冲区内容 |
| 最适合 | 调试构建错误或分析命令输出 |
在排除构建失败时,尝试
@terminal 有什么问题? 以立即深入了解错误,而无需手动复制输出。
Git 提及
Git 提及通过引用提交和更改来帮助您使用版本控制。
| 类型 | 格式 | 提供 | 限制 |
|---|---|---|---|
| 提交 | @a1b2c3d | 提交消息、作者、日期和完整差异 | 仅在 Git 存储库中工作 |
| 工作更改 | @git-changes | git status 输出和未提交更改的差异 | 仅在 Git 存储库中工作 |
示例用法: @a1b2c3d 的目的是什么? 或 为 @git-changes 建议一条提交消息
URL 提及
URL 提及让您可以在与 Bob 的对话中引用外部 Web 内容。
| 功能 | 详细信息 |
|---|---|
| 格式 | @https://example.com |
| 处理 | 使用无头浏览器获取内容 |
| 清理 | 删除脚本、样式和导航元素 |
| 输出 | 将内容转换为 Markdown 以提高可读性 |
| 限制 | 复杂页面可能无法完美转换 |
URL 提及对于引用文档很有用。
尝试 你能解释 @https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise 吗 以获取有关理解概念的帮助,并将官方文档作为上下文。
使用上下文提及
在聊天输入中输入 @ 以触发建议下拉菜单。
继续输入以过滤建议或使用箭头键导航。
使用 Enter 键或鼠标点击选择。
在请求中组合多个提及:"修复 @/src/component.ts 中的 @problems"
突出显示文本并使用键盘快捷键 ⌘ + L 将其添加到聊天中。
下拉菜单自动建议:
- 最近打开的文件
- 可见文件夹
- 最近的 git 提交
- 特殊关键字(
problems、terminal、git-changes) - 所有当前打开的文件(无论忽略设置或目录过滤器如何)
下拉菜单自动过滤掉常见目录,例如 node_modules、.git、dist 和 out 以减少噪音,即使您可以在手动输入时包含它们的内容。
您可以在单个请求中组合多个提及。尝试 比较 @/src/v1/api.js 和 @/src/v2/api.js 并解释差异。
重要行为
忽略文件交互
上下文提及在与忽略的文件交互时具有特定行为:
| 行为 | 描述 |
|---|---|
.bobignore 绕过 | 文件和文件夹 @mentions 在获取上下文内容时绕过 .bobignore 检查。如果直接提及,将包含来自忽略文件的内容。 |
.gitignore 绕过 | 同样,文件和文件夹 @mentions 在获取内容时不尊重 .gitignore 规则。 |
| Git 命令尊重 | 与 Git 相关的提及(@git-changes、@commit-hash)确实尊重 .gitignore,因为它们依赖于 Git 命令。 |
上下文提及绕过忽略规则,因此您可以引用通常会被 Bob 或 Git 忽略的特定文件。当您需要讨论生成的文件或其他通常被忽略的内容时,此功能特别有用。
综合运用
上下文提及通过提供对项目元素的精确引用来增强您与 Bob 的交互。您可以直接引用您正在讨论的内容,而不是复制和粘贴代码或描述文件位置。
不同提及类型的有效组合:
修复 @/src/components 中的 @problems 并解释出了什么问题审查 @git-changes 并建议改进比较 @/v1/api.js 和 @https://api-docs.example.com 并检查不一致之处
通过有效使用上下文提及,您可以更精确地与 Bob 沟通并获得更有针对性的帮助。