C в Maguyva: графы вызовов для системного и встраиваемого кода
В C граф вызовов и есть архитектура. Агенту стоит прочитать его до того, как что-то править.
Расширения
.c, .h
Maguyva поддерживает модули Pascal и Delphi с AST, символами и графом, чтобы ИИ-агенты картировали предложения uses, классы и процедуры до изменений.
Приложения на Delphi и Free Pascal часто растут вокруг нескольких больших модулей, которыми пользуется всё остальное. Формы наследуют от базовых форм, компоненты — от базовых компонентов, а бизнес-правила живут в процедурах, которые вызывают десяток экранов. По файлам код читается хорошо, но изменения ломаются именно на зависимостях.
Maguyva сначала даёт агенту структуру модулей и классов, чтобы он мог сказать, что затронет изменение, прежде чем что-либо писать.
Maguyva охватывает исходные модули .pas и .pp. Определения процедур и функций извлекаются как вызываемые символы, а из имён определений удаляются ключевые слова procedure, function, var и const. Классы и интерфейсы можно выбрать как определения типов в структурном поиске.
Импорты строятся из предложений uses; ключевое слово удаляется, и в графе сохраняются имена модулей. Вызовы нормализуются: убираются префиксы членов, аргументы и внешние скобки, поэтому вызов Self.Save(x) сохраняется как Save.
Граф фиксирует вызовы, наследование, реализацию интерфейсов, переопределения, создание экземпляров, ссылки на типы, чтения и записи, а также рёбра возбуждения и обработки исключений. Около 107 процедур библиотеки времени выполнения (WriteLn, ReadLn, Inc, Dec, Ord и подобные) исключаются из связей.
DataModuleMain и что из него вызывают?» (dependency_search incoming)TBaseEditForm и какие методы переопределяют?» (find_symbol, затем dependency_search)get_task_context).pas и .pp. Файлы проектов и форм Delphi, такие как .dpr и .dfm, не входят в список расширений, поэтому разметка форм и настройка проекта остаются вне графа.methods в structural_search ничего не выбирает. Используйте пресет functions.text_pattern_search.Подключите репозиторий по быстрому старту, затем изучите матрицу поддержки на странице совместимости. Если приложение подключает библиотеки на C, прочитайте и руководство по C.
Лучше всего подходит
Сценарии работы агента
Детали движка
Полезные точки входа MCP
Используйте с именем класса, формы или процедуры, когда нужны определение и ссылки.
Используйте обход incoming для общего модуля или базового класса, чтобы увидеть, какие модули и потомки от них зависят.
Используйте для промптов вроде «объясни, как проводится счёт — от обработчика кнопки до модуля базы данных».
Похожие гайды
В C граф вызовов и есть архитектура. Агенту стоит прочитать его до того, как что-то править.
Расширения
.c, .h
Здесь широкая поддержка языков перестаёт быть просто цифрой в статистике и становится инструментом модернизации.
Расширения
.cbl, .cob, .cpy