Поддержка Java в Maguyva: интеллектуальный анализ кода для корпоративных репозиториев
Полезно, когда репозиторий полон сервисов Spring, внутренних фреймворков и кода, пережившего несколько организационных эпох.
Расширения
.java
Maguyva поддерживает Scala с AST, символами и графом, чтобы ИИ-агенты могли прослеживать трейты, объекты, case-классы и типизированные вызовы в коде для JVM и Spark.
В Scala одно имя несёт большую нагрузку. Трейт, его объект-компаньон и case-класс могут разделять одно понятие. Сопоставление с образцом связывает новые имена внутри предложений case, а метод, вызванный без получателя внутри класса, на деле является вызовом на this. Агент, читающий файлы по одному, видит имена, но не то, во что они разрешаются.
Maguyva разрешает больше на этапе индексации, поэтому, когда агент спрашивает, кто вызывает метод, он получает ответ, по которому можно действовать.
Maguyva охватывает файлы .scala и .sc. Классы, объекты и трейты извлекаются как типы, а пресет functions в structural_search охватывает объявления и определения def и лямбды. Сигнатуры фиксируют повторяющиеся (*) параметры, а префикс _root_ удаляется из импортов.
Связи вызовов сохраняют имена, квалифицированные классом, а вызов без получателя внутри класса разрешается в собственный метод этого класса. Типизация получателя отслеживает параметры, параметры класса, определения val и var, типизированные образцы и образцы case-классов в предложениях case, возвращаемые типы методов классов, объектов и трейтов, псевдонимы типов и предложения extends. new для типа с заглавной буквы считается созданием экземпляра.
Ни один тип связей не помечен как неприменимый для Scala, поэтому граф также фиксирует наследование, переопределения, ссылки на типы, чтение и запись, поток управления и рёбра исключений.
PaymentService.capture и из каких маршрутов?» (find_symbol, затем dependency_search по входящим связям)EventHandler?» (dependency_search)get_task_context)map, flatMap и foldLeft, и вспомогательные Option, Either, Try, Future и Predef. Вызов на this или на значении, тип которого разрешается в один из ваших классов, сохраняется, даже если имя есть в этом списке. Если вызывающий код всё равно кажется пропавшим, используйте text_pattern_search.A, F и CC, и корневые типы вроде Any, Unit и Nothing отфильтрованы из ссылок на типы.Подключите репозиторий по быстрому старту, затем изучите матрицу поддержки на странице совместимости. Для смешанных кодовых баз на JVM прочитайте и руководство по Java, и руководство по Kotlin.
Лучше всего подходит
Сценарии работы агента
Детали движка
Полезные точки входа MCP
Используйте для трейта, объекта или метода сервиса, когда нужны определение и ссылки.
Используйте обход входящих связей для трейта или метода, чтобы увидеть реализации и вызовы перед изменением сигнатуры.
Используйте для промптов вроде «проследи, как событие заказа доходит до записи в реестр».
Похожие гайды
Полезно, когда репозиторий полон сервисов Spring, внутренних фреймворков и кода, пережившего несколько организационных эпох.
Расширения
.java
Kotlin прячет много связей в получателях и лямбдах. Граф снова делает их видимыми.
Расширения
.kt, .kts