सामग्री पर जाएँ
cd /languages
  • आज की JVM
  • प्रोग्रामिंग
  • AST और सिंबल सपोर्ट

Maguyva में Kotlin: Android और JVM के लिए कोड ग्राफ़

Maguyva, Kotlin को AST, सिंबल और ग्राफ़ के साथ सपोर्ट करता है, ताकि AI एजेंट Android और JVM कोड में क्लास, एक्सटेंशन फ़ंक्शन और कोरूटीन ट्रेस कर सकें।

Kotlin सतही AI टूल को कहाँ उलझाती है

Kotlin संक्षिप्त है क्योंकि यह वायरिंग छिपा देती है। apply, let, also, run और with यह बदल देते हैं कि this और it का क्या अर्थ है। एक्सटेंशन फ़ंक्शन कहीं और परिभाषित टाइप में व्यवहार जोड़ते हैं। कोरूटीन काम को launch, async और withContext के बीच ले जाते हैं। एक बार में एक फ़ाइल पढ़ने वाला एजेंट कॉल देखता है, पर उनके पीछे के रिसीवर नहीं।

Maguyva इस संरचना का बड़ा हिस्सा इंडेक्सिंग के समय ही सुलझा देता है, ताकि एजेंट पूछ सके कि किसी फ़ंक्शन को कौन कॉल करता है और असली जवाब पाए।

Maguyva, Kotlin से क्या निकालता है

Maguyva .kt और .kts को कवर करता है। फ़ंक्शन, क्लास, ऑब्जेक्ट और कंपैनियन ऑब्जेक्ट निकाले जाते हैं, और फ़ंक्शन सिग्नेचर एक्सटेंशन रिसीवर, पैरामीटर नाम, डिफ़ॉल्ट मान और vararg पैरामीटर दर्ज करते हैं।

कॉल संबंध क्लास-क्वालिफ़ाइड नाम बनाए रखते हैं, ताकि OrderRepository.save किसी दूसरे save से अलग रहे। रिसीवर टाइपिंग apply और run के अंदर this, let और also के अंदर it, और with के आर्ग्युमेंट को फ़ॉलो करती है, ताकि scope फ़ंक्शन के अंदर के कॉल सही type पर रिज़ॉल्व हों। कोरूटीन बिल्डर और Flow ऑपरेटर (launch, async, withContext, coroutineScope, supervisorScope, flow, emit, delay, Channel) ग्राफ़ में जान-बूझकर रखे जाते हैं।

ग्राफ़ इनहेरिटेंस, इंटरफ़ेस इम्प्लीमेंटेशन, ओवरराइड, इंस्टैंशिएशन, annotations, टाइप रेफ़रेंस, रीड और राइट, और एक्सेप्शन throw और catch करने वाली एज भी दर्ज करता है।

एजेंट प्रॉम्प्ट के उदाहरण

  • “CheckoutUseCase.invoke को कौन कॉल करता है, और किन ViewModels से?” (find_symbol, फिर incoming दिशा में dependency_search)
  • “SyncWorker से नेटवर्क क्लाइंट तक सिंक फ़्लो ट्रेस करो।” (get_task_context)
  • “कौन-सी क्लास PaymentGateway इम्प्लीमेंट करती हैं?” (dependency_search)

ज्ञात सीमाएँ

  • लगभग 250 Kotlin स्टैंडर्ड-लाइब्रेरी और प्लेटफ़ॉर्म कॉल संबंधों से फ़िल्टर किए जाते हैं, इसलिए listOf, map, filter और println जैसे हेल्पर ग्राफ़ एज नहीं हैं। इनके लिए text_pattern_search इस्तेमाल करें।

अगले कदम

क्विकस्टार्ट से रिपॉज़िटरी जोड़ें, फिर सपोर्ट मैट्रिक्स कम्पैटिबिलिटी पेज पर देखें। मिश्रित कोडबेस के लिए Java गाइड भी पढ़ें।

सबसे उपयुक्त

  • > बड़े, मल्टी-मॉड्यूल ऐप वाली Android टीमें, जहाँ ViewModels, रिपॉज़िटरी और यूज़ केस मॉड्यूल सीमाओं के पार एक-दूसरे को कॉल करते हैं।
  • > सर्वर-साइड Kotlin और Kotlin/JVM सेवाएँ, जो Kotlin को पुराने Java कोड के साथ मिलाती हैं।
  • > Kotlin स्क्रिप्ट (`.kts`) में लिखे Gradle बिल्ड, जिन्हें एजेंट को ऐप्लिकेशन कोड के साथ पढ़ना होता है।

एजेंट वर्कफ़्लो

  • > किसी repository या यूज़-केस क्लास का API बदलने से पहले उसके हर कॉलर को ढूँढना।
  • > ViewModel के `launch` से `withContext` होते हुए डेटा लेयर तक कोरूटीन फ़्लो ट्रेस करना।
  • > रीफ़ैक्टरिंग से पहले किसी इंटरफ़ेस को इम्प्लीमेंट करने वाली या बेस मेथड ओवरराइड करने वाली क्लास का नक्शा बनाना।

इंजन विवरण

  • > Kotlin सपोर्ट `.kt` और `.kts` को कवर करता है। सिग्नेचर एक्सटेंशन रिसीवर, पैरामीटर नाम, डिफ़ॉल्ट मान और `vararg` पैरामीटर दर्ज करते हैं।
  • > रिसीवर टाइपिंग `apply` और `run` में `this`, `let` और `also` में `it`, और `with` के आर्ग्युमेंट को फ़ॉलो करती है, और कॉल क्लास-क्वालिफ़ाइड नाम बनाए रखते हैं।
  • > `launch`, `withContext` और `flow` जैसे कोरूटीन बिल्डर और Flow ऑपरेटर ग्राफ़ में रहते हैं, जबकि लगभग 250 स्टैंडर्ड-लाइब्रेरी कॉल फ़िल्टर किए जाते हैं।

उपयोगी MCP एंट्री पॉइंट

  • find_symbol

    जब आपको परिभाषा और रेफ़रेंस चाहिए, तो किसी क्लास, यूज़ केस या एक्सटेंशन फ़ंक्शन के लिए इस्तेमाल करें।

  • dependency_search

    API बदलने से पहले कॉलर और इम्प्लीमेंटेशन देखने के लिए किसी repository या इंटरफ़ेस पर incoming ट्रैवर्सल इस्तेमाल करें।

  • get_task_context

    "`SyncWorker` से नेटवर्क क्लाइंट तक सिंक फ़्लो ट्रेस करो" जैसे प्रॉम्प्ट के लिए इस्तेमाल करें।

संबंधित गाइड

रिपॉज़िटरी के संबंधित हिस्से

सभी गाइड ब्राउज़ करें