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