Maguyva의 Elixir 지원: Phoenix와 OTP 앱을 위한 코드 그래프
Elixir의 구조는 매크로 안에 있습니다. 그래프는 그것을 구조로 읽어 냅니다.
확장자
.ex, .exs
Haskell은 괄호 없이 함수를 호출하고, 연산자로 함수를 합성하며, 타입 클래스를 통해 디스패치합니다. render user는 하나의 호출이고, f . g <$> xs에는 여러 호출이 들어 있으며, show의 의미는 해당 타입의 인스턴스가 정합니다. 텍스트 검색은 이름은 찾아도 그 뒤의 인스턴스는 찾지 못합니다.
Maguyva는 인스턴스와 생성자를 관계로 기록하므로, 에이전트가 어떤 타입이 클래스를 구현하고 값이 어디서 만들어지는지 볼 수 있습니다.
Maguyva는 .hs와 .lhs 파일을 Haskell로 매핑합니다. 함수와 바인딩은 호출 가능 항목으로, 타입 클래스, data 타입, newtype는 타입으로 추출됩니다. 공백으로 구분된 함수 적용과 중위 연산자 모두에서 호출을 인식하며, 임포트는 qualified, hiding, as 절을 정규화합니다.
타입 클래스와 생성자는 다음과 같이 그래프 관계가 됩니다.
instance Eq Point는 Point가 Eq를 구현한다고 기록합니다.Point 1 2처럼 데이터 생성자를 적용하면 인스턴스화로 계산됩니다.error, undefined, throw는 예외 발생을 기록하고, catch 같은 핸들러는 예외 처리를 기록합니다.인스턴스 선언은 show나 return 같은 이름을 정의할 수 있으므로, 같은 파일의 정의가 그 이름을 가진 리시버 없는 호출의 대상이라고 가정하지 않습니다.
parseConfig를 누가 호출하고, 어떤 모듈에서 호출하나요?” (find_symbol, 그다음 dependency_search incoming)ToJSON 인스턴스를 가진 타입은 무엇인가요?” (dependency_search)get_task_context)map, foldr, fmap, pure, >>= 같은 약 130개의 Prelude 및 기본 라이브러리 이름과 Data.List, Control.Monad 같은 모듈은 관계에서 걸러집니다. 이런 호출에는 text_pattern_search를 사용하세요.structural_search의 functions 프리셋은 람다만 반환하고 methods와 variables 프리셋은 아무것도 선택하지 않습니다. 이름이 있는 함수에는 find_symbol를 사용하세요..lhs 파일은 전체가 Haskell 문법으로 읽히므로, 결과가 일부만 나올 수 있습니다.빠른 시작으로 저장소를 연결한 다음, 호환성 페이지에서 지원 매트릭스를 확인하세요. 다른 함수형 코드베이스라면 Elixir 가이드를 읽어 보세요.
가장 적합한 경우
에이전트 워크플로
엔진 세부 정보
유용한 MCP 진입점
함수나 타입의 정의와 참조가 필요할 때 사용하세요. 구조 프리셋은 람다만 반환합니다.
타입 클래스에 incoming 탐색을 사용해 인스턴스를 가진 타입을 확인하세요.
"요청이 어떻게 디코딩되고 검증되는지 추적해 줘" 같은 프롬프트에 사용하세요.
관련 가이드
Elixir의 구조는 매크로 안에 있습니다. 그래프는 그것을 구조로 읽어 냅니다.
확장자
.ex, .exs
Rust를 가치 있게 만드는 구조적 안전장치를 잃지 않으면서 Rust에서 AI 지원을 원할 때 유용합니다.
확장자
.rs