Elixir у Maguyva: графи коду для застосунків на Phoenix і OTP
Структура Elixir живе всередині макросів. Граф читає їх як структуру.
Розширення
.ex, .exs
Maguyva підтримує Haskell з AST, символами та графом, щоб ШІ-агенти могли простежувати функції, екземпляри класів типів і конструктори даних між модулями.
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 за вхідними зв’язками)ToJSON?» (dependency_search)get_task_context)map, foldr, fmap, pure і >>=, а також модулі на кшталт Data.List і Control.Monad, відфільтровано зі зв’язків. Для них використовуйте text_pattern_search.functions у structural_search повертає лише лямбди, а пресети methods і variables нічого не вибирають. Для іменованих функцій використовуйте find_symbol..lhs читаються повністю граматикою Haskell; для них результати можуть бути неповними.Під’єднайте репозиторій за швидким стартом, потім перегляньте матрицю підтримки на сторінці сумісності. Для інших функціональних кодових баз прочитайте посібник з Elixir.
Найкраще підходить
Робочі процеси агента
Деталі рушія
Корисні точки входу MCP
Використовуйте для функції чи типу, коли потрібні визначення й посилання; структурні пресети повертають лише лямбди.
Використовуйте обхід вхідних зв'язків для класу типів, щоб побачити, які типи мають екземпляри.
Використовуйте для промптів на кшталт «простеж, як запит розбирається й перевіряється».
Пов'язані гайди
Структура Elixir живе всередині макросів. Граф читає їх як структуру.
Розширення
.ex, .exs
Актуально, коли ви хочете отримати ШІ-допомогу в Rust, не втрачаючи структурних запобіжників, які й роблять Rust вартим використання.
Розширення
.rs