Kotlin in Maguyva: Code-Graphen für Android und die JVM
Kotlin versteckt viel Verdrahtung in Receivern und Lambdas. Der Graph holt sie zurück.
Dateiendungen
.kt, .kts
Maguyva unterstützt Dart mit AST, Symbolen und Graph, damit KI-Agenten Klassen, Mixins, Extensions und Konstruktoren über Flutter- und Dart-Code hinweg verfolgen.
Dart verteilt einen Typ auf mehrere Konstrukte. Eine Klasse kann von einer Basisklasse erben, mehrere Interfaces implementieren und über with Verhalten aus Mixins einbinden. Extension-Methoden hängen Member an Typen, die an anderer Stelle definiert sind, und benannte sowie factory-Konstruktoren verbergen, welche Klasse tatsächlich gebaut wird. Eine Textsuche findet die Namen, aber nicht die Struktur dahinter.
Maguyva gibt einem Agenten diese Struktur, damit er eine Änderung vom Widget bis zum Service verfolgen kann, von dem es abhängt.
Maguyva deckt .dart-Dateien ab. Klassen, Mixins und Extensions werden als Typen extrahiert. Das Preset functions in structural_search umfasst Funktionen, Methoden, lokale Funktionen, Lambdas sowie generative, const- und factory-Konstruktoren. Signaturen erfassen optionale positionale und benannte Parametergruppen sowie static-Member, und Definitionsnamen verlieren ein abschließendes ? oder !.
Importe normalisieren import-, part- und library-Direktiven und entfernen ihre show-, hide- und as-Klauseln. Ein Aufruf über ein Import-Präfix, etwa http.get nach import 'package:http/http.dart' as http, bleibt im Graphen.
Die Receiver-Typisierung folgt Parametern, typisierten und initialisierten Variablen, Gettern sowie for-in-Schleifen über Listen, Sets und Iterables und behandelt var und dynamic als abgeleitete Typen. Beim Auflösen geerbter Member werden extends-, implements- und with-Klauseln verfolgt. Der Graph erfasst außerdem Instanziierung, Typreferenzen, Lese- und Schreibzugriffe sowie Exception-Kanten.
CartRepository.addItem auf, und aus welchen Widgets?“ (find_symbol, dann dependency_search incoming)PaymentGateway?“ (dependency_search)get_task_context)map, where und forEach, Future- und Stream-Methoden wie then und listen sowie die dart:-Bibliotheken. Verwende dafür text_pattern_search.structural_search-Ergebnissen eine lokale Funktion oder ein Lambda mit dem umgebenden Callable überschneiden, und Getter und Setter erscheinen als Methodensignaturen.Verbinde ein Repository über den Schnellstart und prüfe dann die Unterstützungsmatrix auf der Kompatibilitätsseite. Für andere mobile Codebasen lies den Kotlin-Leitfaden und den Swift-Leitfaden.
Am besten geeignet
Agentenabläufe
Engine-Einordnung
Nützliche MCP-Einstiegspunkte
Nutz es für eine Widget-, Repository- oder Service-Klasse, wenn du Definition und Referenzen brauchst.
Nutz die eingehende Traversierung auf einer Repository-Methode oder einem Interface, um vor einer API-Änderung Aufrufer und Implementierungen zu sehen.
Nutz es für Prompts wie „verfolge, wie der Checkout-Button die Payments-API erreicht“.
Verwandte Guides
Kotlin versteckt viel Verdrahtung in Receivern und Lambdas. Der Graph holt sie zurück.
Dateiendungen
.kt, .kts
In Swift steckt Verhalten in Protokollen und Extensions. Ein Agent muss beides sehen.
Dateiendungen
.swift