Підтримка 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