# Kotlin in Maguyva: Code-Graphen für Android und die JVM

Canonical source: https://maguyva.ai/de/languages/kotlin

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Maguyva unterstützt Kotlin mit AST, Symbolen und Graph, damit KI-Agenten Klassen, Extension Functions und Coroutines über Android- und JVM-Code hinweg verfolgen.

## Unterstützungsüberblick

- Stufe: AST- und Symbol-Support
- Programmierung
- Dateiendungen: .kt, .kts
- Echtes AST-Parsing für syntaxbewusste Suche und strukturellen Kontext.
- Benannte Symbole speisen semantisches Lookup und Cross-Referenzierung. Graph-Navigation ist verfügbar, wenn die Beziehungsextraktion aktiviert ist.
- Diese Sprache liefert Symbole und Beziehungen für die graphgestützte Suche; die unterstützten Kantentypen variieren je nach nativen Konstrukten der Sprache.
- AST-Parsing und Symbolextraktion sind beide verfügbar.

## Am besten geeignet

- Android-Teams mit großen Multi-Modul-Apps, in denen ViewModels, Repositories und Use Cases sich modulübergreifend aufrufen.
- Serverseitiges Kotlin und Kotlin/JVM-Dienste, in denen Kotlin neben älterem Java-Code läuft.
- Gradle-Builds in Kotlin Script (`.kts`), die Agenten zusammen mit dem Anwendungscode lesen müssen.

## Agentenabläufe

- Jeden Aufrufer einer Repository- oder Use-Case-Klasse finden, bevor sich ihre API ändert.
- Einen Coroutine-Ablauf vom `launch` eines ViewModels über `withContext` bis in die Datenschicht verfolgen.
- Vor einem Refactoring erfassen, welche Klassen ein Interface implementieren oder eine Basismethode überschreiben.

## Wo Kotlin oberflächliche KI-Tools ins Stolpern bringt

Kotlin ist knapp, weil es Verdrahtung versteckt. `apply`, `let`, `also`, `run` und `with` ändern, was `this` und `it` bedeuten. Extension Functions hängen Verhalten an Typen, die anderswo definiert sind. Coroutines verschieben Arbeit über `launch`, `async` und `withContext`. Ein Agent, der eine Datei nach der anderen liest, sieht die Aufrufe, aber nicht die Receiver dahinter.

Maguyva löst einen größeren Teil dieser Struktur schon beim Indexieren auf, sodass ein Agent fragen kann, wer eine Funktion aufruft, und die echte Antwort bekommt.

## Was Maguyva in Kotlin extrahiert

Maguyva deckt `.kt` und `.kts` ab. Funktionen, Klassen, Objekte und Companion Objects werden extrahiert, und Funktionssignaturen erfassen Extension Receiver, Parameternamen, Standardwerte und `vararg`-Parameter.

Aufrufbeziehungen behalten klassenqualifizierte Namen, sodass `OrderRepository.save` von einem anderen `save` unterscheidbar bleibt. Die Receiver-Typisierung folgt `this` innerhalb von `apply` und `run`, `it` innerhalb von `let` und `also` sowie dem Argument von `with`, damit Aufrufe in Scope Functions auf den richtigen Typ aufgelöst werden. Coroutine-Builder und Flow-Operatoren (`launch`, `async`, `withContext`, `coroutineScope`, `supervisorScope`, `flow`, `emit`, `delay`, `Channel`) bleiben bewusst im Graphen.

Der Graph erfasst außerdem Vererbung, Interface-Implementierung, Overrides, Instanziierung, Annotationen, Typreferenzen, Lese- und Schreibzugriffe sowie Kanten für das Werfen und Fangen von Ausnahmen.

## Beispiel-Prompts für Agenten

- „Wer ruft `CheckoutUseCase.invoke` auf, und aus welchen ViewModels?“ (`find_symbol`, dann `dependency_search` incoming)
- „Verfolge den Sync-Ablauf von `SyncWorker` bis zum Netzwerk-Client.“ (`get_task_context`)
- „Welche Klassen implementieren `PaymentGateway`?“ (`dependency_search`)

## Bekannte Grenzen

- Etwa 250 Aufrufe der Kotlin-Standardbibliothek und der Plattform werden aus den Beziehungen gefiltert, daher sind Helfer wie `listOf`, `map`, `filter` und `println` keine Graphkanten. Verwende dafür `text_pattern_search`.

## Nächste Schritte

Verbinde ein Repository über den [Schnellstart](/de/docs/quickstart) und prüfe dann die Unterstützungsmatrix auf der [Kompatibilitätsseite](/de/docs/compatibility). Bei gemischten Codebasen lies auch den [Java-Leitfaden](/de/languages/java).

## Engine-Einordnung

- Die Kotlin-Unterstützung deckt `.kt` und `.kts` ab. Signaturen erfassen Extension Receiver, Parameternamen, Standardwerte und `vararg`-Parameter.
- Die Receiver-Typisierung folgt `this` in `apply` und `run`, `it` in `let` und `also` sowie dem Argument von `with`, und Aufrufe behalten klassenqualifizierte Namen.
- Coroutine-Builder und Flow-Operatoren wie `launch`, `withContext` und `flow` bleiben im Graphen, während etwa 250 Aufrufe der Standardbibliothek gefiltert werden.

## Nützliche MCP-Einstiegspunkte

- `find_symbol`: Nutz es für eine Klasse, einen Use Case oder eine Extension Function, wenn du Definition und Referenzen brauchst.
- `dependency_search`: Nutz vor einer API-Änderung die eingehende Traversierung auf einem Repository oder Interface, um Aufrufer und Implementierungen zu sehen.
- `get_task_context`: Nutz es für Prompts wie „verfolge den Sync-Ablauf von `SyncWorker` bis zum Netzwerk-Client“.
