C++ in Maguyva: Klassen- und Aufrufgraphen für große Codebasen
C++ versteckt das echte Aufrufziel hinter Namespaces, Überladungen und virtuellem Dispatch. Der Graph hilft einem Agenten, es zu finden.
Dateiendungen
.c, .c++, .cc, .cpp, +6 weitere
Maguyva unterstützt Swift mit AST, Symbolen und Graph, damit KI-Agenten Protokolle, Extensions, Initializer und Observer in iOS- und macOS-Code verfolgen können.
Swift verteilt einen Typ auf viele Stellen. Ein Struct wird in einer Datei deklariert, erhält Verhalten aus Extensions in drei anderen und entspricht Protokollen, die in einem Paket definiert sind. Zustandsänderungen verstecken sich in berechneten Properties und willSet / didSet-Observern. Ein Agent, der eine Datei nach der anderen liest, übersieht das meiste davon.
Maguyva indexiert die Struktur, sodass ein Agent die Member, Protokollkonformitäten und Aufrufer eines Typs zusammen sehen kann.
Maguyva deckt .swift ab. Zu den aufrufbaren Symbolen gehören Funktionen, init und deinit, Subscripts, Getter und Setter berechneter Properties sowie willSet / didSet-Observer. Zustandsändernder Code ist damit als Symbol durchsuchbar, statt in Property-Rümpfen zu verschwinden.
Member, die in Structs, Enums, Protokollen und Extensions deklariert sind, werden mit ihrem besitzenden Typ qualifiziert (zum Beispiel CartStore.add), und in einer Extension hinzugefügte Member werden dem erweiterten Typ zugeordnet. Bei Definitionsnamen werden generische Parameter, Listen der Protokollkonformität und die Suffixe ? / ! entfernt, sodass Abfragen den schlichten Namen verwenden. Aufrufe behalten self. und die Klassenqualifizierung, und Trailing Closures zählen zur Aufrufarität.
Der Graph erfasst Aufrufe, Protokollkonformität, Vererbung, Overrides, Instanziierung, Attribute, Typreferenzen, Lese- und Schreibzugriffe sowie throw-Kanten.
PaymentProvider, und wo wird jeder davon erzeugt?“ (dependency_search)CartStore.add auf, und aus welchen Views?“ (find_symbol, dann dependency_search incoming)get_task_context).swift-Quelltext ist zugeordnet. Storyboard- und XIB-Dateien stehen nicht in der Liste der Dateiendungen, daher liegen Interface-Builder-Verbindungen außerhalb des Graphen.print, debugPrint, NSLog und Assertions werden aus den Beziehungen gefiltert und sind daher keine Graphkanten. Verwende dafür text_pattern_search.Verbinde ein Repository über den Schnellstart und prüfe dann die Unterstützungsmatrix auf der Kompatibilitätsseite. Wenn du dasselbe Produkt auch für Android auslieferst, lies den Kotlin-Leitfaden.
Am besten geeignet
Agentenabläufe
Engine-Einordnung
Nützliche MCP-Einstiegspunkte
Nutz es für einen Typ-, Protokoll- oder Methodennamen, wenn du Definition und Referenzen brauchst.
Nutz es auf einem Protokoll, um konforme Typen zu finden, oder die eingehende Traversierung auf einer Methode, um Aufrufer zu finden.
Nutz es für Prompts wie „erkläre, wie eine Push-Benachrichtigung den Posteingang-Bildschirm erreicht“.
Verwandte Guides
C++ versteckt das echte Aufrufziel hinter Namespaces, Überladungen und virtuellem Dispatch. Der Graph hilft einem Agenten, es zu finden.
Dateiendungen
.c, .c++, .cc, .cpp, +6 weitere
Kotlin versteckt viel Verdrahtung in Receivern und Lambdas. Der Graph holt sie zurück.
Dateiendungen
.kt, .kts