Skip to main content

多根工作区支持

Caret 的多根(Multiroot)功能 (实验性 - 2025 年 10 月 1 日) 可与 VSCode 的多根工作区无缝协作,让您在单个工作区中管理多个项目文件夹。

什么是多根工作区?

不再局限于单个项目文件夹,Caret 可以在 VSCode 工作区的所有文件夹中读取文件、编写代码和执行命令。这对于 monorepo、微服务或同时处理相关项目非常有用。

开始使用

设置多根工作区

  1. 向工作区添加文件夹:

    • 在 VSCode 中使用文件 > 将文件夹添加到工作区
    • 或创建包含多个文件夹路径的 .code-workspace 文件
    • 将文件夹拖放到文件资源管理器
    • 打开新工作区时选择多个文件夹
  2. 开始使用 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 在进行更改之前了解项目结构。

最佳实践

工作区组织

  1. 分组相关项目:经常需要协调更改的项目
  2. 使用一致的文件夹结构:尽可能跨工作区使用
  3. 明确文件夹名称:帮助 Caret 理解项目结构

有效的提示和技巧

在使用多根工作区时,以下方法最有效:

  • 在重要时指定工作区"更新后端工作区中的用户模型"
  • 引用关系"前端使用共享工作区中的 API 类型"
  • 描述跨工作区任务"此更改应反映在 web 和 mobile 应用中"
  • 指定搜索范围:处理大型代码库时:"仅在前端工作区中搜索 'TODO'"
  • 分解大型任务:尽可能按工作区拆分任务
  • 考虑排除大型文件夹:从工作区搜索范围中排除 node_modules 等文件夹

常见问题

问:我可以为每个工作区使用不同的设置吗? 答:可以,每个工作区文件夹都可以有自己的 .vscode/settings.json

问:如何知道 Caret 在哪个工作区工作? 答:Caret 会根据提示的上下文自动检测,或者您可以明确指定工作区名称。

问:对性能有影响吗? 答:多个工作区意味着更多文件,因此初始索引可能较慢,但一旦设置完成,性能是相似的。


有问题或反馈?请在 GitHub Discussions 上联系我们。