Skip to main content

Поддержка многокорневой рабочей области

Функция многокорневой области Careti работает плавно с многокорневыми рабочими областями VSCode, позволяя вам управлять несколькими папками проекта в одной рабочей области.

ℹ️Note

This is Careti-based documentation. Careti v3.38.1-based fork. Careti-specific policies/limitations (multiroot support scope, checkpoint/rule behavior differences) are marked with <Note> when applicable.

ℹ️Note

Важно: Многокорневые рабочие области в настоящее время являются экспериментальной функцией и имеют следующие ограничения:

  • Правила Careti работают только в первой папке рабочей области
  • Контрольные точки автоматически отключаются с сообщением о предупреждении
  • Обе функции восстанавливаются, когда вы возвращаетесь к однопапочной рабочей области

Что такое поддержка многокорневой рабочей области?

Вместо того чтобы быть ограниченным одной папкой проекта, Careti может читать файлы, писать код и запускать команды в папках вашей рабочей области VSCode. Это полезно при работе с monorepos, микросервисами, или когда вы работаете на связанных проектах одновременно.

Как это работает

Когда вы открываете несколько папок рабочей области в VSCode, Careti автоматически:

  • Обозначает одну папку как основную рабочую область (обычно первая добавленная папка)
  • Отслеживает все папки рабочей области и их пути
  • Разрешает пути файлов разумно на протяжении рабочих областей
  • Отображает информацию рабочей области в деталях окружения для каждого запроса API

Как начать

Настройка многокорневых рабочих областей

  1. Добавьте папки в вашу рабочую область:

    • Используйте File > Add Folder to Workspace в VSCode
    • Или создайте файл .code-workspace с несколькими путями папок
    • Перетащите папки в File Explorer
    • Выберите несколько папок при открытии новой рабочей области
  2. Начните использовать Careti - Careti автоматически обнаружит все папки вашей рабочей области и будет взаимодействовать с ними по мере необходимости.

Для подробных инструкций по настройке многокорневых рабочих областей в VS Code см. официальное руководство Microsoft.

Техническое поведение

Обнаружение рабочей области

  • Careti обнаруживает все папки рабочей области при запуске задачи
  • Первая папка рабочей области становится основной рабочей областью по умолчанию
  • Каждая рабочая область может иметь свою собственную VCS (Git, SVN и т.д.)

Разрешение пути

  • Относительные пути разрешаются относительно основной рабочей области
  • Вы можете использовать намеки рабочей области для целевых конкретных рабочих областей: @workspaceName:path/to/file
  • Careti пытается разумно определить, к какой рабочей области принадлежит файл

Выполнение команды

  • Команды выполняются в контексте соответствующей рабочей области
  • Рабочий каталог устанавливается в зависимости от того, где осуществляется доступ к файлам

Работа в рабочих областях

Ссылка на конкретные рабочие области

Вы можете ссылаться на разные рабочие области естественно в ваших приглашениях:

"Read the package.json in my frontend folder and compare it with the backend dependencies"
"Create a shared utility function and update both the client and server to use it"
"Search for TODO comments across all my workspace folders"

Намеки рабочей области

Используйте намеки рабочей области для явной ссылки на файлы в конкретных рабочих областях:

@frontend:src/App.tsx
@backend:server.ts

Этот синтаксис помогает Careti разрешить неоднозначность, когда несколько рабочих областей содержат аналогично названные файлы.

Распространённые варианты использования

Разработка Monorepo

Идеально подходит для когда у вас есть связанные проекты в одном репозитории:

my-app.code-workspace
├── web/ (React frontend)
├── api/ (Node.js backend)
├── mobile/ (React Native)
└── shared/ (Common utilities)

Попросите Careti: "Update the API endpoint in both web and mobile apps to match the new backend route"

Архитектура микросервисов

Управляйте несколькими сервисами из одной рабочей области:

services.code-workspace
├── user-service/
├── payment-service/
├── notifications/
└── infrastructure/

Full-Stack разработка

Держите всё вместе при сохранении разделения:

fullstack.code-workspace
├── client/ (Frontend)
├── server/ (Backend API)
├── docs/ (Documentation)
└── deploy/ (Scripts & config)

Интеграция Auto-Approve

Многокорневые рабочие области работают с Auto Approve:

  • Включите разрешения для операций в папках рабочей области
  • Ограничьте автоматическое одобрение для файлов вне вашей рабочей области(й)
  • Настройте различные уровни для различных папок рабочей области

Операции между рабочими областями

Careti может завершить задачи, охватывающие несколько рабочих областей:

  • Рефакторинг: Обновить импорты и ссылки в проектах
  • Разработка функции: Реализовать функции, требующие изменений в нескольких сервисах
  • Документация: Генерировать документы, ссылающиеся на код из нескольких папок
  • Тестирование: Собрать и запустить тесты во всех рабочих областях и анализ результатов

При работе с большими многокорневыми рабочими областями, начните в режиме плана, чтобы позволить Careti понять структуру вашего проекта перед внесением изменений.

Лучшие практики

Организация ваших рабочих областей

  1. Группируйте связанные проекты, которым часто нужны скоординированные изменения
  2. Используйте согласованные структуры папок в рабочих областях, когда это возможно
  3. Назовите папки чётко, чтобы Careti мог понять структуру вашего проекта

Эффективные подсказки и советы

При работе с многокорневыми рабочими областями эти подходы работают лучше всего:

  • Будьте конкретны, в отношении того, какая рабочая область, когда это важно: "Update the user model in the backend workspace"
  • Ссылайтесь на отношения: "The frontend uses the API types from the shared workspace"
  • Описывайте операции между рабочими областями: "This change needs to be reflected in both the web and mobile apps"
  • Ограничьте ваши поиски, при работе с большими кодовыми базами: "Search for 'TODO' in just the frontend workspace"
  • Разбейте большие задачи, на операции, специфичные для рабочей области, когда это возможно
  • Рассмотрите исключение больших папок, как node_modules из поиска вашей рабочей области