सामग्री पर जाएँ
cd /languages
  • Apple प्लेटफ़ॉर्म
  • प्रोग्रामिंग
  • AST और सिंबल सपोर्ट

Maguyva में Swift: iOS और macOS के लिए कोड ग्राफ़

Maguyva, Swift को AST, सिंबल और ग्राफ़ के साथ सपोर्ट करता है, ताकि AI एजेंट iOS और macOS कोड में प्रोटोकॉल, एक्सटेंशन, इनिशियलाइज़र और ऑब्ज़र्वर ट्रेस कर सकें।

Swift को फ़ाइल सर्च से ज़्यादा की ज़रूरत क्यों है

Swift एक type को कई जगह फैला देती है। कोई struct एक फ़ाइल में घोषित होता है, तीन दूसरी फ़ाइलों के एक्सटेंशन से व्यवहार पाता है, और किसी पैकेज में परिभाषित प्रोटोकॉल को कन्फ़ॉर्म करता है। स्टेट में बदलाव कंप्यूटेड प्रॉपर्टी और willSet / didSet ऑब्ज़र्वर में छिपे होते हैं। एक बार में एक फ़ाइल पढ़ने वाला एजेंट इसका ज़्यादातर हिस्सा चूक जाता है।

Maguyva इस संरचना को इंडेक्स करता है, ताकि एजेंट किसी type के मेंबर, कन्फ़ॉर्मेंस और कॉलर एक साथ देखे।

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

Maguyva .swift को कवर करता है। कॉल किए जा सकने वाले सिंबल में फ़ंक्शन, init और deinit, subscripts, कंप्यूटेड-प्रॉपर्टी getters और setters, और willSet / didSet ऑब्ज़र्वर शामिल हैं, ताकि स्टेट बदलने वाला कोड प्रॉपर्टी बॉडी में खोने के बजाय सिंबल के रूप में खोजा जा सके।

structs, enums, प्रोटोकॉल और एक्सटेंशन में घोषित मेंबर अपने ओनर type से क्वालिफ़ाई होते हैं (जैसे CartStore.add), और किसी एक्सटेंशन में जोड़े गए मेंबर उस type से जोड़े जाते हैं जिसे एक्सटेंड किया गया है। परिभाषा नामों से जेनेरिक पैरामीटर, प्रोटोकॉल-कन्फ़ॉर्मेंस सूचियाँ और ? / ! सफ़िक्स हटा दिए जाते हैं, ताकि खोज सीधे नाम से हो। कॉल self. और क्लास क्वालिफ़ायर बनाए रखते हैं, और ट्रेलिंग क्लोज़र कॉल की एरिटी में गिने जाते हैं।

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

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

  • “कौन-से टाइप PaymentProvider को कन्फ़ॉर्म करते हैं, और हर एक कहाँ बनता है?” (dependency_search)
  • “CartStore.add को कौन कॉल करता है, और किन व्यू से?” (find_symbol, फिर incoming दिशा में dependency_search)
  • “समझाओ कि पुश नोटिफ़िकेशन इनबॉक्स स्क्रीन तक कैसे पहुँचता है।” (get_task_context)

ज्ञात सीमाएँ

  • सिर्फ़ .swift सोर्स ही मैप होता है। Storyboard और XIB फ़ाइलें एक्सटेंशन सूची में नहीं हैं, इसलिए Interface Builder कनेक्शन ग्राफ़ से बाहर रहते हैं।
  • print, debugPrint, NSLog और असर्शन जैसे स्टैंडर्ड-लाइब्रेरी और Foundation कॉल संबंधों से फ़िल्टर किए जाते हैं, इसलिए वे ग्राफ़ एज नहीं हैं। इनके लिए text_pattern_search इस्तेमाल करें।

अगले कदम

क्विकस्टार्ट से रिपॉज़िटरी जोड़ें, फिर सपोर्ट मैट्रिक्स कम्पैटिबिलिटी पेज पर देखें। अगर आप वही प्रोडक्ट Android पर भी देते हैं, तो Kotlin गाइड पढ़ें।

सबसे उपयुक्त

  • > बड़े ऐप टार्गेट और साझा Swift पैकेज वाली iOS और macOS टीमें।
  • > प्रोटोकॉल और एक्सटेंशन के इर्द-गिर्द बने कोडबेस, जहाँ किसी type का व्यवहार कई फ़ाइलों में बिखरा होता है।
  • > एजेंट वर्कफ़्लो, जिन्हें किसी साझा मॉडल, सेवा या प्रोटोकॉल को बदलने से पहले इम्पैक्ट एनालिसिस चाहिए।

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

  • > किसी प्रोटोकॉल की कोई आवश्यकता बदलने से पहले उसे कन्फ़ॉर्म करने वाला हर type ढूँढना।
  • > ViewModels, कोऑर्डिनेटर और पैकेज में किसी सेवा मेथड के कॉलर ट्रेस करना।
  • > किसी स्टेट को छूने वाले इनिशियलाइज़र, कंप्यूटेड प्रॉपर्टी और `didSet` ऑब्ज़र्वर ढूँढना।

इंजन विवरण

  • > कॉल किए जा सकने वाले सिंबल में फ़ंक्शन, `init`, `deinit`, subscripts, कंप्यूटेड-प्रॉपर्टी getters और setters, और `willSet` / `didSet` ऑब्ज़र्वर शामिल हैं।
  • > structs, enums, प्रोटोकॉल और एक्सटेंशन के मेंबर अपने ओनर type से क्वालिफ़ाई होते हैं, जैसे `CartStore.add`।
  • > परिभाषा नामों से जेनेरिक पैरामीटर, प्रोटोकॉल-कन्फ़ॉर्मेंस सूचियाँ और `?` / `!` सफ़िक्स हटा दिए जाते हैं, और कॉल `self.` और क्लास क्वालिफ़ायर बनाए रखते हैं।

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

  • find_symbol

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

  • dependency_search

    कन्फ़ॉर्म करने वाले टाइप ढूँढने के लिए किसी प्रोटोकॉल पर, या कॉलर ढूँढने के लिए किसी मेथड पर incoming दिशा में इस्तेमाल करें।

  • get_task_context

    "समझाओ कि पुश नोटिफ़िकेशन इनबॉक्स स्क्रीन तक कैसे पहुँचता है" जैसे प्रॉम्प्ट के लिए इस्तेमाल करें।

संबंधित गाइड

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

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