Hopp til innhold
cd /languages
  • Moderne JVM
  • Programmering
  • AST- og symbolstøtte

Kotlin i Maguyva: kodegrafer for Android og JVM

Maguyva støtter Kotlin med AST, symboler og graf, slik at AI-agenter kan følge klasser, extension functions og coroutines i Android- og JVM-kode.

Der Kotlin får overfladiske AI-verktøy til å snuble

Kotlin er konsist fordi det skjuler koblinger. apply, let, also, run og with endrer hva this og it betyr. Extension functions legger atferd til typer som er definert et annet sted. Coroutines flytter arbeid mellom launch, async og withContext. En agent som leser én fil om gangen, ser kallene, men ikke mottakerne bak dem.

Maguyva løser mer av denne strukturen allerede ved indeksering, slik at en agent kan spørre hvem som kaller en funksjon og få det riktige svaret.

Hva Maguyva henter ut i Kotlin

Maguyva dekker .kt og .kts. Funksjoner, klasser, objekter og companion objects hentes ut, og funksjonssignaturer registrerer extension receivers, parameternavn, standardverdier og vararg-parametere.

Kallrelasjoner beholder klassekvalifiserte navn, så OrderRepository.save holdes adskilt fra en annen save. Mottakertypingen følger this inne i apply og run, it inne i let og also samt argumentet til with, slik at kall i scope functions løses til riktig type. Coroutine-byggere og Flow-operatorer (launch, async, withContext, coroutineScope, supervisorScope, flow, emit, delay, Channel) beholdes med vilje i grafen.

Grafen registrerer også arv, grensesnittimplementasjon, overstyringer, instansiering, annoteringer, typereferanser, lesinger og skrivinger samt kanter for å kaste og fange unntak.

Eksempler på prompter for agenter

  • «Hvem kaller CheckoutUseCase.invoke, og fra hvilke ViewModels?» (find_symbol, deretter dependency_search incoming)
  • «Spor synkroniseringsflyten fra SyncWorker til nettverksklienten.» (get_task_context)
  • «Hvilke klasser implementerer PaymentGateway?» (dependency_search)

Kjente begrensninger

  • Rundt 250 kall i Kotlins standardbibliotek og plattform filtreres ut av relasjonene, så hjelpefunksjoner som listOf, map, filter og println er ikke kanter i grafen. Bruk text_pattern_search for dem.

Neste steg

Koble til et repositorium med hurtigstarten, og se deretter støttematrisen på kompatibilitetssiden. For blandede kodebaser bør du også lese veiledningen for Java.

Best egnet

  • > Android-team med store flermodulsapper der ViewModels, repositorier og use cases kaller hverandre på tvers av moduler.
  • > Kotlin på serversiden og Kotlin/JVM-tjenester som blander Kotlin med eldre Java-kode.
  • > Gradle-bygg skrevet i Kotlin script (`.kts`) som agenter må lese sammen med applikasjonskoden.

Agent-arbeidsflyter

  • > Finne alle som kaller en repository- eller use case-klasse før API-et endres.
  • > Spore en coroutine-flyt fra `launch` i en ViewModel via `withContext` inn i datalaget.
  • > Kartlegge hvilke klasser som implementerer et grensesnitt eller overstyrer en basismetode før en refaktorering.

Motordetaljer

  • > Kotlin-støtten dekker `.kt` og `.kts`. Signaturer registrerer extension receivers, parameternavn, standardverdier og `vararg`-parametere.
  • > Mottakertypingen følger `this` i `apply` og `run`, `it` i `let` og `also` samt argumentet til `with`, og kall beholder klassekvalifiserte navn.
  • > Coroutine-byggere og Flow-operatorer som `launch`, `withContext` og `flow` blir værende i grafen, mens rundt 250 kall i standardbiblioteket filtreres ut.

Nyttige MCP-inngangspunkter

  • find_symbol

    Bruk det for en klasse, en use case eller en extension function når du trenger definisjonen og referansene.

  • dependency_search

    Bruk incoming-traversering på et repository eller grensesnitt før en API-endring for å se kallere og implementasjoner.

  • get_task_context

    Bruk det til prompter som «spor synkroniseringsflyten fra `SyncWorker` til nettverksklienten».