代码库上下文

Warp 会索引你用 Git 管理的本地代码库,帮助代理更好地理解你的代码,从而生成准确且具有上下文感知的响应。代码绝不会存储在 Warp 的服务器上。

代码库上下文让 Warp 代理能够通过索引本地代码库深入了解你的项目。这使得代理能生成更精准的补全,提出符合上下文的编辑建议,并基于对你代码的真实理解回答问题。

Warp 的编码代理仅在本地仓库中工作。它可以对远程或 Docker 仓库做更改,但会退回使用终端命令(如 sed、grep)来执行。

代码库上下文功能不支持 SSH 或 WSL 会话。目前对这两者的支持请求正在以下 GitHub 议题中跟踪: SSH - https://github.com/warpdotdev/Warp/issues/6831 WSL - https://github.com/warpdotdev/Warp/issues/6744

代码库上下文 - 图1 Warp 中的代码库索引设置。轻松跟踪同步状态,管理哪些文件夹被索引以供 AI 提供上下文和建议。

索引你的代码库

当你在 Warp 中打开一个目录时,系统会检查它是否属于 Git 仓库。如果是,Warp 就会开始索引源代码,为 Warp 代理提供丰富上下文。

代码库索引的触发时机:

  • 启用代码库上下文时首次索引
  • Warp 会定期自动触发索引
  • 每当开启新的代理对话
  • 在设置 > 代码菜单中点击同步 🔄 按钮时

这个嵌入索引帮助代理:

  • 了解你的项目结构并引用相关代码
  • 生成符合你风格和模式的补全
  • 基于真实上下文,在正确位置建议修改

对于大型项目,索引可能需要几分钟。索引完成前,Warp 代理不会使用代码库上下文,但智能编码功能依然完全可用

你可以在设置 > 代码 > 代码库索引中查看和管理已索引的代码库,也可以选择是否在导航新文件夹时自动索引。

代码库索引状态

在 Warp 设置 > 代码中查看索引的代码库时,可能看到不同状态指示:

  • 已同步 — 索引完成,代码库已可作为上下文使用
  • 正在发现文件 — Warp 正在扫描和索引代码库文件
  • 索引失败 — 索引失败。常见原因包括无法读取 .git 目录或仓库损坏。建议重新克隆仓库并再次同步
  • 代码库过大 — 文件数量超出当前套餐限制。你可以用 .warpindexingignore 减少索引文件数量,或联系销售获取更大规模支持。

代码库上下文 - 图2 在 Warp 中查看和管理代码库索引状态,轻松了解哪些项目已同步、正在进行或需关注。

何时进行代码库同步?

Warp 会在以下情况自动触发代码库同步:

  • 首次开启代码库上下文时
  • 定期自动同步
  • 在设置 > 代码菜单点击同步 🔄 按钮
  • 启动新的代理对话时

但如果有大量文件变更或网络缓慢,可能会导致代理访问上下文时同步尚未完成。

对于大型项目(比如分支切换后),可能会短暂出现代理引用旧文件的情况。

文件和代码库限制

你能索引的代码库数量和单个代码库允许的最大文件数随套餐不同而异。所有套餐都支持至少索引 5000 个文件,高级套餐支持更多文件和更多代码库。

详情请见我们的定价页面

忽略文件

针对大型代码库,Warp 支持多种忽略文件,帮助你控制哪些内容被索引。这让开发者能专注于与工作相关的代码部分。

Warp 支持以下忽略文件:

  • .gitignore
  • .warpindexingignore
  • .cursorignore
  • .cursorindexingignore
  • .codeiumignore

利用这些文件可以跳过索引某些文件夹、自动生成文件或不希望代理参考的内容,从而提升性能和结果质量。

被忽略规则排除的文件不计入代码库文件限制。

多仓库上下文

Warp 支持跨多个已索引仓库引用上下文。你不必在特定仓库内,代理也能使用该仓库的上下文。

这在以下情况特别有用:

  • 在多个仓库间实现一个功能,比如客户端和服务器端的全栈开发
  • 在一个仓库中开发时参考另一个仓库,比如“把仓库 A 的实现复制到我的仓库 B”

代理只会引用已索引的其他仓库。在跨仓库任务中,Warp 代理能访问所有索引仓库的文件路径。当你在提示中明确提到仓库名称时,更可能利用跨仓库上下文。