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 из поиска вашей рабочей области