Maguyva 對 C++ 的支援:大型程式碼庫的類別與呼叫圖
C++ 把真正的呼叫目標藏在命名空間、多載與虛擬分派之後。圖譜能幫助代理把它找出來。
副檔名
.c, .c++, .cc, .cpp, 還有 6 個
Swift 會把一個型別分散到許多地方。一個結構在某個檔案中宣告,從另外三個檔案的擴充取得行為,並遵循某個套件中定義的協定。狀態變化藏在計算屬性與 willSet / didSet 觀察器裡。一次只讀一個檔案的代理會漏掉其中大部分。
Maguyva 會為這些結構建立索引,讓代理能一併看到一個型別的成員、協定遵循與呼叫端。
Maguyva 涵蓋 .swift。可呼叫的符號包括函式、init 與 deinit、下標、計算屬性的 getter 與 setter,以及 willSet / didSet 觀察器,因此改變狀態的程式碼可以作為符號搜尋,而不會埋在屬性本體中。
在結構、列舉、協定與擴充中宣告的成員,會以所屬型別限定(例如 CartStore.add),在擴充中新增的成員則歸屬到被擴充的型別。定義名稱會移除泛型參數、協定遵循清單,以及 ? / ! 後綴,因此查找時使用的是單純的名稱。呼叫會保留 self. 與類別限定,尾隨閉包也會計入呼叫的引數數量。
圖譜會記錄呼叫、協定遵循、繼承、覆寫、實例化、屬性標記(attribute)、型別參照、讀寫,以及 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 方向使用,可找到呼叫端。
適合用於「說明一則推播通知是如何抵達收件匣畫面的」這類提示。
相關指南