Maguyva의 Kotlin 지원: Android와 JVM을 위한 코드 그래프
Kotlin은 많은 연결을 리시버와 람다 속에 숨깁니다. 그래프가 그것을 되찾아 줍니다.
확장자
.kt, .kts
Dart는 하나의 타입을 여러 구문에 나누어 담습니다. 클래스는 하나의 기반 클래스를 상속하고, 여러 인터페이스를 구현하고, with 믹스인으로 동작을 섞어 넣을 수 있습니다. 확장 메서드는 다른 곳에서 정의된 타입에 멤버를 붙이고, 명명된 생성자와 factory 생성자는 실제로 어떤 클래스가 만들어지는지 숨깁니다. 텍스트 검색은 이름은 찾아도 그 뒤의 구조는 찾지 못합니다.
Maguyva는 에이전트에게 그 구조를 제공하므로, 에이전트가 위젯에서 의존하는 서비스까지 변경 사항을 따라갈 수 있습니다.
Maguyva는 .dart 파일을 지원합니다. 클래스, 믹스인, 확장은 타입으로 추출됩니다. structural_search의 functions 프리셋은 함수, 메서드, 로컬 함수, 람다, 그리고 생성형, const, factory 생성자를 다룹니다. 시그니처에는 선택적 위치 매개변수 그룹과 명명된 매개변수 그룹, static 멤버가 기록되고, 정의 이름에서는 끝의 ?와 !가 제거됩니다.
임포트는 import, part, library 지시문을 정규화하고 show, hide, as 절을 제거합니다. import 'package:http/http.dart' as http 뒤의 http.get처럼 임포트 접두사를 통한 호출은 그래프에 남습니다.
리시버 타입 추론은 매개변수, 타입이 지정되거나 초기화된 변수, 게터, 그리고 리스트, 세트, 이터러블을 도는 for-in 루프를 따라가며, var와 dynamic는 추론된 타입으로 취급합니다. 상속된 멤버를 해석할 때는 extends, implements, with 절을 따라갑니다. 그래프에는 인스턴스화, 타입 참조, 읽기와 쓰기, 예외 엣지도 기록됩니다.
CartRepository.addItem를 누가 호출하고, 어떤 위젯에서 호출하나요?” (find_symbol, 그다음 dependency_search incoming)PaymentGateway를 구현하는 클래스는 무엇인가요?” (dependency_search)get_task_context)map, where, forEach 같은 컬렉션 헬퍼, then와 listen 같은 Future 및 Stream 메서드, 그리고 dart: 라이브러리가 여기에 포함됩니다. 이런 호출에는 text_pattern_search를 사용하세요.structural_search 결과에서 로컬 함수나 람다가 그것을 포함하는 호출 가능 항목과 겹칠 수 있고, 게터와 세터는 메서드 시그니처로 표시됩니다.빠른 시작으로 저장소를 연결한 다음, 호환성 페이지에서 지원 매트릭스를 확인하세요. 다른 모바일 코드베이스라면 Kotlin 가이드와 Swift 가이드를 읽어 보세요.
가장 적합한 경우
에이전트 워크플로
엔진 세부 정보
유용한 MCP 진입점
위젯, 리포지토리, 서비스 클래스의 정의와 참조가 필요할 때 사용하세요.
API를 바꾸기 전에 리포지토리 메서드나 인터페이스에 incoming 탐색을 사용해 호출자와 구현체를 확인하세요.
"결제 버튼이 결제 API까지 어떻게 이어지는지 추적해 줘" 같은 프롬프트에 사용하세요.
관련 가이드
Kotlin은 많은 연결을 리시버와 람다 속에 숨깁니다. 그래프가 그것을 되찾아 줍니다.
확장자
.kt, .kts
Swift에서 동작은 프로토콜과 익스텐션에 있습니다. 에이전트는 둘 다 볼 수 있어야 합니다.
확장자
.swift