# Maguyva'da Kotlin: Android ve JVM için kod grafları

Canonical source: https://maguyva.ai/tr/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, Kotlin'i AST, sembol ve graf desteğiyle sunar; böylece yapay zeka ajanları Android ve JVM kodunda sınıfları, uzantı fonksiyonlarını ve coroutine'leri izleyebilir.

## Destek anlık görüntüsü

- Katman: AST ve sembol desteği
- Programlama
- Uzantılar: .kt, .kts
- Sözdizimi farkında arama ve yapısal bağlam için gerçek AST ayrıştırması.
- Adlandırılmış semboller anlamsal aramayı ve çapraz referansı besler. İlişki çıkarımı etkinleştirildiğinde graf gezinmesi kullanılabilir.
- Bu dil, graf farkındalıklı aramaya semboller ve ilişkiler sağlar; desteklenen kenar türleri dilin yerel yapılarına göre değişir.
- Hem AST ayrıştırma hem de sembol çıkarma kullanılabilir.

## En uygun kullanım

- ViewModel'lerin, repository'lerin ve use case'lerin modül sınırları ötesinde birbirini çağırdığı büyük, çok modüllü uygulamalara sahip Android ekipleri.
- Kotlin'i eski Java koduyla birleştiren sunucu tarafı Kotlin ve Kotlin/JVM hizmetleri.
- Ajanların uygulama koduyla birlikte okuması gereken, Kotlin betiğiyle (`.kts`) yazılmış Gradle yapılandırmaları.

## Ajan iş akışları

- API'si değişmeden önce bir repository veya use case sınıfını çağıran herkesi bulmak.
- Bir coroutine akışını ViewModel'deki `launch` çağrısından `withContext` üzerinden veri katmanına kadar izlemek.
- Bir yeniden yapılandırmadan önce bir arayüzü uygulayan veya bir temel yöntemi geçersiz kılan sınıfları haritalamak.

## Kotlin yüzeysel yapay zeka araçlarını nerede şaşırtır

Kotlin kısadır çünkü bağlantıları gizler. `apply`, `let`, `also`, `run` ve `with`, `this` ve `it` ifadelerinin anlamını değiştirir. Uzantı fonksiyonları başka yerde tanımlanmış türlere davranış ekler. Coroutine'ler işi `launch`, `async` ve `withContext` arasında taşır. Her seferinde tek dosya okuyan bir ajan çağrıları görür, ama arkalarındaki alıcıları görmez.

Maguyva bu yapının daha büyük bölümünü dizinleme sırasında çözer; böylece bir ajan bir fonksiyonu kimin çağırdığını sorup gerçek yanıtı alabilir.

## Maguyva Kotlin'den neleri çıkarır

Maguyva `.kt` ve `.kts` dosyalarını kapsar. Fonksiyonlar, sınıflar, nesneler ve companion nesneler çıkarılır; fonksiyon imzaları uzantı alıcılarını, parametre adlarını, varsayılan değerleri ve `vararg` parametrelerini kaydeder.

Çağrı ilişkileri sınıfla nitelenmiş adları korur; böylece `OrderRepository.save` başka bir `save` ile karışmaz. Alıcı türlemesi `apply` ve `run` içindeki `this` ifadesini, `let` ve `also` içindeki `it` ifadesini ve `with` argümanını izler; böylece kapsam fonksiyonlarının içindeki çağrılar doğru türe çözülür. Coroutine oluşturucuları ve Flow operatörleri (`launch`, `async`, `withContext`, `coroutineScope`, `supervisorScope`, `flow`, `emit`, `delay`, `Channel`) grafta bilinçli olarak tutulur.

Graf ayrıca kalıtımı, arayüz uygulamasını, geçersiz kılmaları, örneklemeyi, anotasyonları, tür referanslarını, okuma ve yazmaları ve istisna fırlatma ve yakalama kenarlarını kaydeder.

## Örnek ajan istemleri

- "`CheckoutUseCase.invoke` yöntemini kim, hangi ViewModel'lerden çağırıyor?" (`find_symbol`, ardından gelen yönde `dependency_search`)
- "Senkronizasyon akışını `SyncWorker` sınıfından ağ istemcisine kadar izle." (`get_task_context`)
- "Hangi sınıflar `PaymentGateway` arayüzünü uyguluyor?" (`dependency_search`)

## Bilinen sınırlar

- Yaklaşık 250 Kotlin standart kütüphane ve platform çağrısı ilişkilerden filtrelenir; bu nedenle `listOf`, `map`, `filter` ve `println` gibi yardımcılar graf kenarı değildir. Bunlar için `text_pattern_search` kullanın.

## Sonraki adımlar

[Hızlı başlangıç](/tr/docs/quickstart) ile bir repo bağlayın, ardından destek matrisi için [uyumluluk sayfasına](/tr/docs/compatibility) bakın. Karma kod tabanları için [Java rehberini](/tr/languages/java) de okuyun.

## Motor ayrıntıları

- Kotlin desteği `.kt` ve `.kts` dosyalarını kapsar. İmzalar uzantı alıcılarını, parametre adlarını, varsayılan değerleri ve `vararg` parametrelerini kaydeder.
- Alıcı türlemesi `apply` ve `run` içindeki `this` ifadesini, `let` ve `also` içindeki `it` ifadesini ve `with` argümanını izler; çağrılar sınıfla nitelenmiş adları korur.
- `launch`, `withContext` ve `flow` gibi coroutine oluşturucuları ve Flow operatörleri grafta kalır; yaklaşık 250 standart kütüphane çağrısı filtrelenir.

## Yararlı MCP giriş noktaları

- `find_symbol`: Tanıma ve referanslara ihtiyacınız olduğunda bir sınıf, use case veya uzantı fonksiyonu için kullanın.
- `dependency_search`: Bir API değişikliğinden önce çağıranları ve uygulamaları görmek için bir repository'de veya arayüzde gelen yönde dolaşım kullanın.
- `get_task_context`: "Senkronizasyon akışını `SyncWorker` sınıfından ağ istemcisine kadar izle" gibi istemler için kullanın.
