Skip to main content

マルチルートワークスペースサポート

Caretのマルチルート(Multiroot)機能 (実験的 - 2025年10月1日) は、VSCodeのマルチルートワークスペースとシームレスに動作し、単一のワークスペースで複数のプロジェクトフォルダを管理できます。

マルチルートワークスペースとは?

一つのプロジェクトフォルダに制限される代わりに、CaretはVSCodeワークスペースのすべてのフォルダからファイルを読み、コードを書き、コマンドを実行できます。モノレポ、マイクロサービス、または関連プロジェクトを同時に作業するときに便利です。

はじめに

マルチルートワークスペースの設定

  1. ワークスペースにフォルダを追加:

    • VSCodeでファイル > ワークスペースにフォルダを追加を使用
    • または複数のフォルダパスがある.code-workspaceファイルを作成
    • ファイルエクスプローラーでフォルダをドラッグ&ドロップ
    • 新しいワークスペースを開くときに複数のフォルダを選択
  2. Caretの使用を開始 - Caretが自動的にすべてのワークスペースフォルダを検出し、必要に応じて相互作用します。

マルチルートワークスペース設定の詳細な手順については、Microsoft公式ガイドを参照してください。

Caretが複数のワークスペースを処理する方法

複数のフォルダがあると、Caretが自動的に:

  • すべてのワークスペースフォルダを検出
  • 異なるプロジェクト間のファイル作業
  • 正しいコンテキストでコマンド実行
  • パス解釈をインテリジェントに処理

ワークスペース間の作業

Caretにナビゲートさせるか正確にガイドする

プロンプトで様々なワークスペースを自然に参照できます:

"フロントエンドフォルダのpackage.jsonを読んでバックエンド依存関係と比較して"
"共有ユーティリティ関数を作成して、クライアントとサーバーの両方がこれを使用するように更新して"
"すべてのワークスペースフォルダでTODOコメントを検索して"

一般的な使用ケース

モノレポ開発

一つのリポジトリに関連プロジェクトがあるときに完璧です:

my-app.code-workspace
├── web/ (Reactフロントエンド)
├── api/ (Node.jsバックエンド)
├── mobile/ (React Native)
└── shared/ (共通ユーティリティ)

Caretに尋ねてください: "新しいバックエンドルートに合わせてウェブとモバイルアプリの両方で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タイプを使用して"
  • ワークスペース間の作業を説明: "この変更はウェブとモバイルアプリの両方に反映する必要がある"
  • 検索範囲を指定: 大規模なコードベースを扱う場合: "フロントエンドワークスペースでのみ'TODO'を検索して"
  • 大きな作業を分解: 可能な場合はワークスペース別の作業に
  • 大きなフォルダの除外を検討: ワークスペース検索範囲からnode_modulesのようなフォルダを除外

よくある質問

Q: ワークスペースごとに異なる設定を使用できますか? A: はい、各ワークスペースフォルダは独自の.vscode/settings.jsonを持つことができます。

Q: Caretがどのワークスペースで作業しているか、どうやってわかりますか? A: Caretはプロンプトのコンテキストに基づいて自動的に検出するか、ワークスペース名を明示的に指定できます。

Q: パフォーマンスへの影響はありますか? A: 複数のワークスペースはより多くのファイルを意味するため、初期インデックス作成が遅くなる可能性がありますが、一度設定されればパフォーマンスは類似します。


質問やフィードバックはありますか?GitHub Discussionsでご連絡ください。