Kotlin у Maguyva: графи коду для Android і JVM
Kotlin ховає багато зв'язків в отримувачах і лямбдах. Граф повертає їх на видноту.
Розширення
.kt, .kts
Maguyva підтримує Dart з AST, символами та графом, щоб ШІ-агенти могли простежувати класи, міксини, розширення й конструктори в коді на Flutter і Dart.
Dart розподіляє один тип між кількома конструкціями. Клас може успадковувати від одного базового класу, реалізовувати кілька інтерфейсів і домішувати поведінку з міксинів через with. Методи розширення додають члени до типів, оголошених деінде, а іменовані конструктори та конструктори factory приховують, який клас насправді створюється. Текстовий пошук знаходить імена, але не структуру за ними.
Maguyva передає цю структуру агентові, і він може простежити зміну від віджета до сервісу, від якого той залежить.
Maguyva охоплює файли .dart. Класи, міксини й розширення витягуються як типи. Пресет functions у structural_search охоплює функції, методи, локальні функції, лямбди, а також породжувальні конструктори, конструктори const і factory. Сигнатури фіксують групи необов’язкових позиційних та іменованих параметрів і члени static; суфікси ? і ! вилучаються з імен визначень.
Імпорти нормалізують директиви import, part і library та відкидають речення show, hide і as. Виклик через префікс імпорту, як-от http.get після import 'package:http/http.dart' as http, лишається в графі.
Типізація отримувача відстежує параметри, змінні з оголошеним типом та з ініціалізатором, гетери й цикли for-in за списками, множинами та ітерованими об’єктами; var і dynamic вважаються виведеними типами. Під час розв’язання успадкованих членів враховуються речення extends, implements і with. Граф також фіксує створення екземплярів, посилання на типи, читання й запис, а також ребра винятків.
CartRepository.addItem і з яких віджетів?» (find_symbol, потім dependency_search за вхідними зв’язками)PaymentGateway?» (dependency_search)get_task_context)map, where і forEach, методи Future і Stream на кшталт then і listen, а також бібліотеки dart:. Для них використовуйте text_pattern_search.structural_search локальна функція чи лямбда може накладатися на об’єкт виклику, що її містить, а гетери й сетери показуються як сигнатури методів.Під’єднайте репозиторій за швидким стартом, потім перегляньте матрицю підтримки на сторінці сумісності. Для інших мобільних кодових баз прочитайте посібник із Kotlin і посібник зі Swift.
Найкраще підходить
Робочі процеси агента
Деталі рушія
Корисні точки входу MCP
Використовуйте для класу віджета, репозиторію чи сервісу, коли потрібні визначення й посилання.
Використовуйте обхід вхідних зв'язків для методу репозиторію чи інтерфейсу, щоб побачити виклики та реалізації перед зміною API.
Використовуйте для промптів на кшталт «простеж, як кнопка оформлення замовлення доходить до платіжного API».
Пов'язані гайди
Kotlin ховає багато зв'язків в отримувачах і лямбдах. Граф повертає їх на видноту.
Розширення
.kt, .kts
У Swift поведінка живе в протоколах і розширеннях. Агентові треба бачити і те, й інше.
Розширення
.swift