多根工作区支持
Caret 的多根(Multiroot)功能 (实验性 - 2025 年 10 月 1 日) 可与 VSCode 的多根工作区无缝协作,让您在单个工作区中管理多个项目文件夹。
什么是多根工作区?
不再局限于单个项目文件夹,Caret 可以在 VSCode 工作区的所有文件夹中读取文件、编写代码和执行命令。这对于 monorepo、微服务或同时处理相关项目非常有用。
开始使用
设置多根工作区
-
向工作区添加文件夹:
- 在 VSCode 中使用
文件 > 将文件夹添加到工作区 - 或创建包含多个文件夹路径的
.code-workspace文件 - 将文件夹拖放到文件资源管理器
- 打开新工作区时选择多个文件夹
- 在 VSCode 中使用
-
开始使用 Caret - Caret 会自动检测所有工作区文件夹并根据需要与它们交互。
有关设置多根工作区的详细说明,请参阅 Microsoft 官方指南。
Caret 如何处理多个工作区
当您有多个文件夹时,Caret 会自动:
- 检测所有工作区文件夹
- 跨不同项目处理文件
- 在正确的上下文中执行命令
- 智能处理路径解析
跨工作区工作
让 Caret 探索或精确指导
您可以在提示中自然地引用不同的工作区:
"读取前端文件夹中的 package.json 并与后端依赖项进行比较"
"创建一个共享工具函数并更新客户端和服务器以使用它"
"在所有工作区文件夹中搜索 TODO 注释"
常见用例
Monorepo 开发
非常适合在单个仓库中包含相关项目的情况:
my-app.code-workspace
├── web/ (React 前端)
├── api/ (Node.js 后端)
├── mobile/ (React Native)
└── shared/ (公共工具)
问 Caret:"更新 web 和 mobile 应用中的 API 端点以匹配新的后端路由"
微服务架构
在一个工作区中管理多个服务:
services.code-workspace
├── user-service/
├── payment-service/
├── notifications/
└── infrastructure/
全栈开发
保持所有内容在一起的同时维护分离:
fullstack.code-workspace
├── client/ (前端)
├── server/ (后端 API)
├── docs/ (文档)
└── deploy/ (脚本和配置)
自动批准集成
多根工作区可与自动批准配合使用:
- 为工作区文件夹内的操作启用权限
- 限制对工作区外部文件的自动批准
- 为不同的工作区文件夹配置不同的级别
跨工作区操作
Caret 可以完成跨多个工作区的任务:
- 重构:更新项目之间的导入和引用
- 功能开发:实现需要在多个服务中进行更改的功能
- 文档编写:生成引用多个文件夹中代码的文档
- 测试:在所有工作区中构建和运行测试,分析结果
在处理大型多根工作区时,从 Agent 模式开始,让 Caret 在进行更改之前了解项目结构。
最佳实践
工作区组织
- 分组相关项目:经常需要协调更改的项目
- 使用一致的文件夹结构:尽可能跨工作区使用
- 明确文件夹名称:帮助 Caret 理解项目结构
有效的提示和技巧
在使用多根工作区时,以下方法最有效:
- 在重要时指定工作区:"更新后端工作区中的用户模型"
- 引用关系:"前端使用共享工作区中的 API 类型"
- 描述跨工作区任务:"此更改应反映在 web 和 mobile 应用中"
- 指定搜索范围:处理大型代码库时:"仅在前端工作区中搜索 'TODO'"
- 分解大型任务:尽可能按工作区拆分任务
- 考虑排除大型文件夹:从工作区搜索范围中排除
node_modules等文件夹
常见问题
问:我可以为每个工作区使用不同的设置吗?
答:可以,每个工作区文件夹都可以有自己的 .vscode/settings.json。
问:如何知道 Caret 在哪个工作区工作? 答:Caret 会根据提示的上下文自动检测,或者您可以明确指定工作区名称。
问:对性能有影响吗? 答:多个工作区意味着更多文件,因此初始索引可能较慢,但一旦设置完成,性能是相似的。
有问题或反馈?请在 GitHub Discussions 上联系我们。