Maguyva 對 Java 的支援:企業級儲存庫的程式碼智慧
當儲存庫充滿 Spring 服務、內部框架,以及歷經數個組織世代仍存活下來的程式碼時,這特別有用。
副檔名
.java
在 Scala 裡,一個名字能承載很多東西。trait、它的伴生物件和案例類別可以共享同一個概念。模式匹配會在 case 子句中繫結新名字,類別內部不帶接收者呼叫的方法其實是對 this 的呼叫。一次只讀一個檔案的代理能看到名字,卻看不到它們解析到哪裡。
Maguyva 在建立索引時就解析了更多此類資訊,所以代理詢問誰呼叫了某個方法時,能得到可以直接據此行動的答案。
Maguyva 支援 .scala 和 .sc 檔案。類別、物件和 trait 作為型別擷取,structural_search 中的 functions 預設集涵蓋 def 宣告、定義以及 lambda。簽章會記錄重複(*)參數,匯入會去掉 _root_ 字首。
呼叫關係保留類別限定名,類別內部不帶接收者的呼叫會解析到該類別自己的方法。接收者型別推斷會追蹤參數、類別參數、val 和 var 定義、case 子句中的型別模式和案例類別模式、類別、物件和 trait 上方法的回傳型別、型別別名,以及 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 進入點
需要 trait、物件或服務方法的定義和參照時使用它。
修改簽章之前,對 trait 或方法使用 incoming 方向走訪,檢視實作者和呼叫端。
用於「追蹤一個訂單事件如何到達帳本寫入器」這類提示。