MaguyvaのJava対応: エンタープライズリポジトリのためのコードインテリジェンス
リポジトリがSpringのサービス、社内フレームワーク、そして組織のいくつもの時代を生き延びてきたコードで満ちているときに役立ちます。
拡張子
.java
Scalaでは1つの名前が多くを担います。トレイト、そのコンパニオンオブジェクト、ケースクラスが1つの概念を共有できます。パターンマッチは case 句の中で新しい名前を束縛し、クラス内でレシーバーなしに呼ばれたメソッドは this への呼び出しです。ファイルを1つずつ読むエージェントには、名前は見えても、それが何に解決されるかは見えません。
Maguyvaはインデックス作成時にその多くを解決するため、エージェントがメソッドの呼び出し元を尋ねると、そのまま行動に移せる答えが返ってきます。
Maguyvaは .scala と .sc ファイルに対応しています。クラス、オブジェクト、トレイトは型として抽出され、structural_search の functions プリセットは def の宣言と定義、そしてラムダを対象にします。シグネチャには可変長(*)パラメーターが記録され、インポートからは _root_ プレフィックスが取り除かれます。
呼び出しの関係はクラス修飾名を保持し、クラス内のレシーバーなしの呼び出しはそのクラス自身のメソッドに解決されます。レシーバーの型付けは、パラメーター、クラスパラメーター、val と var の定義、case 句の中の型付きパターンとケースクラスパターン、クラス、オブジェクト、トレイトのメソッドの戻り値の型、型エイリアス、そして extends 句をたどります。大文字で始まる型に対する new はインスタンス化として数えられます。
Scalaでは適用対象外とされる関係性の種類がないため、グラフには継承、オーバーライド、型参照、読み取りと書き込み、制御フロー、例外のエッジも記録されます。
PaymentService.capture を呼び出しているのは誰で、どのルートからか?」(find_symbol、次に dependency_search の incoming)EventHandler を拡張しているクラスとオブジェクトはどれか?」(dependency_search)get_task_context)map、flatMap、foldLeft のようなコレクション操作と、Option、Either、Try、Future、Predef のヘルパーです。this への呼び出しや、型があなたのクラスに解決される値への呼び出しは、その名前がリストにあっても保持されます。それでも呼び出し元が欠けているように見えるときは text_pattern_search を使ってください。A、F、CC のような短い型パラメーターと、Any、Unit、Nothing のようなルート型は、型参照から除外されます。クイックスタートでリポジトリを接続し、互換性ページで対応マトリクスを確認してください。JVMの混在したコードベースについては、JavaガイドとKotlinガイドもご覧ください。
最適な用途
エージェントワークフロー
エンジンの詳細
役立つMCPエントリーポイント
定義と参照が必要なときに、トレイト、オブジェクト、サービスメソッドで使ってください。
シグネチャを変更する前に、トレイトやメソッドに対してincomingのトラバーサルを使い、実装クラスと呼び出し元を確認してください。
「注文イベントが台帳の書き込み処理に届くまでの流れを追跡して」のようなプロンプトに使ってください。
関連ガイド
リポジトリがSpringのサービス、社内フレームワーク、そして組織のいくつもの時代を生き延びてきたコードで満ちているときに役立ちます。
拡張子
.java
Kotlinはレシーバーやラムダに多くの配線を隠します。グラフがそれを取り戻します。
拡張子
.kt, .kts