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

Canonical source: https://maguyva.ai/cs/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 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.

## Přehled podpory

- Úroveň: Podpora AST a symbolů
- Programování
- Přípony: .kt, .kts
- Skutečné parsování AST pro vyhledávání citlivé na syntaxi a strukturální kontext.
- Pojmenované symboly napájejí sémantické vyhledávání a křížové odkazy. Navigace v grafu je k dispozici, když je povolena extrakce vztahů.
- Tento jazyk přispívá symboly a vztahy do vyhledávání využívajícího graf; podporované typy hran se liší podle jeho nativních konstrukcí.
- K dispozici je parsování AST i extrakce symbolů.

## 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.

## 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](/cs/docs/quickstart) a pak si prohlédněte matici podpory na [stránce kompatibility](/cs/docs/compatibility). U smíšených kódových základen si přečtěte i [průvodce jazykem Java](/cs/languages/java).

## 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“.
