MaguyvaのC++対応: 大規模コードのクラスとコールグラフ
C++は本当の呼び出し先を、名前空間、オーバーロード、仮想ディスパッチの裏に隠します。グラフはエージェントがそれを見つける助けになります。
拡張子
.c, .c++, .cc, .cpp, ほか6件
Swiftは1つの型を多くの場所に広げます。構造体はあるファイルで宣言され、ほかの3つのファイルのエクステンションから振る舞いを得て、パッケージで定義されたプロトコルに準拠します。状態の変更は計算プロパティや willSet / didSet オブザーバーに隠れています。ファイルを1つずつ読むエージェントは、その大半を見落とします。
Maguyvaは構造をインデックスするため、エージェントは型のメンバー、準拠、呼び出し元をまとめて見ることができます。
Maguyvaは .swift に対応しています。呼び出し可能なシンボルには、関数、init と deinit、サブスクリプト、計算プロパティのゲッターとセッター、willSet / didSet オブザーバーが含まれるため、状態を変えるコードはプロパティの本体に埋もれず、シンボルとして検索できます。
構造体、列挙型、プロトコル、エクステンションの中で宣言されたメンバーは、所有する型で修飾され(例: CartStore.add)、エクステンションで追加されたメンバーは拡張される型に帰属します。定義名からはジェネリックパラメーター、プロトコル準拠のリスト、? / ! の接尾辞が取り除かれるため、検索はそのままの名前で行えます。呼び出しは self. とクラス修飾を保持し、トレイリングクロージャーも呼び出しの引数の数に数えられます。
グラフには、呼び出し、プロトコル準拠、継承、オーバーライド、インスタンス化、属性、型参照、読み取りと書き込み、throw のエッジが記録されます。
PaymentProvider に準拠する型はどれで、それぞれどこで生成されているか?」(dependency_search)CartStore.add を呼び出しているのは誰で、どのビューからか?」(find_symbol、次に dependency_search の incoming)get_task_context).swift のソースだけです。StoryboardとXIBのファイルは拡張子リストに含まれていないため、Interface Builderでの接続はグラフの対象外です。print、debugPrint、NSLog、アサーションなどの標準ライブラリやFoundationの呼び出しは関係性から除外されるため、グラフのエッジになりません。それらには text_pattern_search を使ってください。クイックスタートでリポジトリを接続し、互換性ページで対応マトリクスを確認してください。同じ製品をAndroidでも提供している場合は、Kotlinガイドをご覧ください。
最適な用途
エージェントワークフロー
エンジンの詳細
役立つMCPエントリーポイント
定義と参照が必要なときに、型、プロトコル、メソッドの名前で使ってください。
プロトコルに対して使えば準拠する型が、メソッドに対してincomingで使えば呼び出し元が見つかります。
「プッシュ通知が受信箱の画面に届くまでの流れを説明して」のようなプロンプトに使ってください。
関連ガイド
C++は本当の呼び出し先を、名前空間、オーバーロード、仮想ディスパッチの裏に隠します。グラフはエージェントがそれを見つける助けになります。
拡張子
.c, .c++, .cc, .cpp, ほか6件
Kotlinはレシーバーやラムダに多くの配線を隠します。グラフがそれを取り戻します。
拡張子
.kt, .kts