Přeskočit na obsah
cd /languages
  • Moderní JVM
  • Programování
  • Podpora AST a symbolů

Kotlin v Maguyva: grafy kódu pro Android a JVM

Maguyva podporuje Kotlin s AST, symboly a grafem, takže AI agenti sledují třídy, rozšiřující funkce a korutiny v kódu pro Android a JVM.

Kde Kotlin podráží povrchní AI nástroje

Kotlin je stručný, protože skrývá propojení. apply, let, also, run a with mění význam this a it. Rozšiřující funkce přidávají chování typům definovaným jinde. Korutiny přesouvají práci mezi launch, async a withContext. Agent, který čte jeden soubor po druhém, vidí volání, ale ne příjemce za nimi.

Maguyva vyřeší větší část této struktury už při indexování, takže se agent může zeptat, kdo funkci volá, a dostat skutečnou odpověď.

Co Maguyva v Kotlinu extrahuje

Maguyva pokrývá .kt a .kts. Extrahují se funkce, třídy, objekty a doprovodné objekty a signatury funkcí zaznamenávají příjemce rozšíření, názvy parametrů, výchozí hodnoty a parametry vararg.

Vazby volání zachovávají názvy kvalifikované třídou, takže OrderRepository.save zůstává odlišitelné od jiného save. Typování příjemců sleduje this uvnitř apply a run, it uvnitř let a also a argument with, aby se volání uvnitř funkcí rozsahu vyřešila na správný typ. Buildery korutin a operátory Flow (launch, async, withContext, coroutineScope, supervisorScope, flow, emit, delay, Channel) v grafu záměrně zůstávají.

Graf zaznamenává také dědičnost, implementaci rozhraní, přepisy, vytváření instancí, anotace, odkazy na typy, čtení a zápisy a hrany vyhazování a zachytávání výjimek.

Ukázkové prompty pro agenty

  • „Kdo volá CheckoutUseCase.invoke a ze kterých ViewModelů?“ (find_symbol, pak dependency_search incoming)
  • „Sleduj tok synchronizace od SyncWorker po síťového klienta.“ (get_task_context)
  • „Které třídy implementují PaymentGateway?“ (dependency_search)

Známá omezení

  • Přibližně 250 volání standardní knihovny Kotlinu a platformy se z vazeb odfiltruje, takže pomocné funkce jako listOf, map, filter a println nejsou hranami grafu. K jejich vyhledání použijte text_pattern_search.

Další kroky

Připojte repozitář podle rychlého startu a pak si prohlédněte matici podpory na stránce kompatibility. U smíšených kódových základen si přečtěte i průvodce jazykem Java.

Nejlépe se hodí pro

  • > Androidí týmy s velkými vícemodulovými aplikacemi, kde se ViewModely, repozitáře a případy užití volají napříč moduly.
  • > Serverový Kotlin a služby Kotlin/JVM, které kombinují Kotlin se starším kódem v Javě.
  • > Sestavení Gradle psaná v Kotlin Scriptu (`.kts`), která musí agenti číst spolu s kódem aplikace.

Workflow agentů

  • > Najít všechny volající třídy repozitáře nebo případu užití, než se změní její API.
  • > Sledovat tok korutin od `launch` ve ViewModelu přes `withContext` až do datové vrstvy.
  • > Před refaktoringem zmapovat, které třídy implementují rozhraní nebo přepisují základní metodu.

Podrobnosti enginu

  • > Podpora Kotlinu pokrývá `.kt` a `.kts`. Signatury zaznamenávají příjemce rozšíření, názvy parametrů, výchozí hodnoty a parametry `vararg`.
  • > Typování příjemců sleduje `this` v `apply` a `run`, `it` v `let` a `also` a argument `with` a volání zachovávají názvy kvalifikované třídou.
  • > Buildery korutin a operátory Flow jako `launch`, `withContext` a `flow` v grafu zůstávají, zatímco přibližně 250 volání standardní knihovny se odfiltruje.

Užitečné vstupní body MCP

  • find_symbol

    Použijte pro třídu, případ užití nebo rozšiřující funkci, když potřebujete definici a odkazy.

  • dependency_search

    Před změnou API použijte procházení incoming na repozitáři nebo rozhraní a uvidíte volající i implementace.

  • get_task_context

    Použijte pro prompty typu „sleduj tok synchronizace od `SyncWorker` po síťového klienta“.