Cursor Ask 代码库交互
免责声明:本文档是 Cursor 官方文档中的 Ask 代码库交互页面的第三方非官方中文翻译,仅供学习参考。内容可能不完全反映最新的官方信息,请以 Cursor 官方文档 为准。所有商标和版权归 Cursor/Anysphere 公司所有。
本文档介绍如何在 Cursor Ask 功能中使用代码库上下文,包括自动提供的上下文和用户指定的上下文。
使用代码库上下文
Ask 功能的一个主要优势是它能够理解和利用您的代码库上下文。在这个页面上,我们将介绍如何在 Ask 中使用代码库上下文来获得最佳结果。
代码库索引
Ask 功能默认会使用索引的代码库作为上下文来源。这意味着:
- Cursor 会自动索引您的代码库
- 提问时,Ask 可以在需要时自动搜索整个代码库
- 您无需手动指定代码文件即可获得相关回答
要检查您的代码库是否已被索引,可以查看状态栏上的索引状态图标。完成索引后,您的问题将能够获得更准确、更相关的回答。
自动和手动上下文
Ask 提供了两种获取代码库上下文的方式:
自动上下文
当您提问时,Ask 会自动包含以下上下文:
- 当前文件:默认情况下,您当前正在编辑的文件会被自动包含在上下文中
- 相关代码:在需要时,Ask 会自动在代码库中搜索相关代码片段
自动上下文让您无需手动指定就能获得有关当前代码的回答。
手动上下文指定
您可以使用 @
符号来手动指定特定的上下文:
文件引用:使用
@filename
来引用特定文件@src/components/Button.js 这个组件如何处理点击事件?
代码库搜索:使用
@codebase
来搜索整个代码库@codebase 在项目中我们如何处理用户认证?
文件夹引用:使用
@folder
来引用文件夹中的所有文件@src/utils 我们有哪些工具函数?
符号引用:使用
@symbol
来引用特定函数或类@AuthService 这个服务如何验证用户令牌?
代码引用与链接
当 Ask 在回答中引用您代码库中的代码时,它会创建指向原始文件的链接。这些链接允许您:
- 快速查看被引用的代码
- 通过点击链接直接跳转到原始文件中的相应位置
- 更轻松地理解 AI 回答中引用的代码片段
这种代码引用和链接功能使得理解复杂代码和在大型代码库中导航变得更加容易。
智能搜索与上下文组合
Ask 使用智能搜索算法来组合不同的上下文源:
- 语义搜索:Ask 可以根据问题的语义找到相关的代码
- 精确匹配:对于特定符号或术语,Ask 会搜索精确匹配
- 上下文组合:Ask 会智能组合多个来源的上下文,以提供完整的答案
这种组合方法使 Ask 能够回答广泛的代码问题,从具体的函数行为到整个系统的架构设计。
最佳实践
要获得最佳的代码库交互体验,请遵循以下最佳实践:
等待索引完成:在大型代码库中提问前,等待索引完成
具体明确:提出具体的问题以获得更精确的上下文和回答
逐步引导:对于复杂问题,从大概的问题开始,然后逐步深入细节
组合引用:对于复杂问题,组合使用不同类型的引用
@models/User.js 和 @controllers/AuthController.js 这两个文件如何协同工作?
利用自动上下文:在当前文件中工作时,利用自动包含的上下文来提问
通过有效利用代码库上下文,Ask 可以成为理解和导航复杂代码库的强大工具,帮助您更快地解决问题,并提高开发效率。