C++ у Maguyva: графи класів і викликів для великих кодових баз
C++ ховає справжню ціль виклику за просторами імен, перевантаженнями й віртуальною диспетчеризацією. Граф допомагає агентові її знайти.
Розширення
.c, .c++, .cc, .cpp, +6 ще
Maguyva підтримує Swift з AST, символами та графом, щоб ШІ-агенти відстежували протоколи, розширення, ініціалізатори й спостерігачі в коді для iOS і macOS.
Swift розподіляє один тип по багатьох місцях. Структуру оголошено в одному файлі, вона отримує поведінку з розширень у трьох інших і відповідає протоколам, визначеним у пакеті. Зміни стану ховаються в обчислюваних властивостях і спостерігачах willSet / didSet. Агент, що читає по одному файлу, пропускає більшу частину цього.
Maguyva індексує цю структуру, щоб агент бачив члени типу, його відповідність протоколам і тих, хто його викликає, разом.
Maguyva охоплює .swift. Символи, що викликаються, охоплюють функції, init і deinit, сабскрипти, гетери й сетери обчислюваних властивостей, а також спостерігачі willSet / didSet, тож код, що змінює стан, шукається як символ, а не губиться в тілах властивостей.
Члени, оголошені в структурах, переліченнях, протоколах і розширеннях, кваліфікуються типом-власником (наприклад, CartStore.add), а члени, додані в розширенні, належать до розширюваного типу. З назв визначень вилучаються узагальнені параметри, списки відповідності протоколам і суфікси ? / !, тож пошук іде за простою назвою. Виклики зберігають self. і кваліфікацію класом, а замикання в кінці враховуються в арності виклику.
Граф фіксує виклики, відповідність протоколам, успадкування, перевизначення, створення екземплярів, атрибути, посилання на типи, читання й записи, а також ребра throw.
PaymentProvider і де створюється кожен із них?» (dependency_search)CartStore.add і з яких представлень?» (find_symbol, потім dependency_search incoming)get_task_context).swift. Файли Storyboard і XIB не входять до списку розширень, тому зв’язки Interface Builder лишаються поза графом.print, debugPrint, NSLog і твердження, відфільтровуються зі зв’язків і не стають ребрами графа. Для них використовуйте text_pattern_search.Під’єднайте репозиторій за швидким стартом, потім перегляньте матрицю підтримки на сторінці сумісності. Якщо той самий продукт виходить і на Android, прочитайте посібник із Kotlin.
Найкраще підходить
Робочі процеси агента
Деталі рушія
Корисні точки входу MCP
Використовуйте з назвою типу, протоколу чи методу, коли потрібні визначення й посилання.
Використовуйте для протоколу, щоб знайти відповідні типи, або в режимі incoming для методу, щоб знайти тих, хто викликає.
Використовуйте для промптів на кшталт «поясни, як пуш-сповіщення потрапляє на екран вхідних».
Пов'язані гайди
C++ ховає справжню ціль виклику за просторами імен, перевантаженнями й віртуальною диспетчеризацією. Граф допомагає агентові її знайти.
Розширення
.c, .c++, .cc, .cpp, +6 ще
Kotlin ховає багато зв'язків в отримувачах і лямбдах. Граф повертає їх на видноту.
Розширення
.kt, .kts