Haskell w Maguyva: grafy kodu dla klas typów i modułów
Typy w Haskellu mówią dużo. Graf pokazuje, kto na nich polega.
Rozszerzenia
.hs, .lhs
Maguyva obsługuje Elixira przez AST, symbole i graf, dzięki czemu agenci AI śledzą moduły, behaviours, protokoły i struktury w kodzie Phoenix i OTP.
Prawie wszystko w Elixirze jest wywołaniem makra. defmodule, def, use, alias i @impl są parsowane jako wywołania, a use GenServer wnosi zachowanie, które nigdy nie pojawia się w pliku. Narzędzie, które widzi tylko składnię wywołań, nie odróżni definicji od zależności ani callbacku GenServera od funkcji pomocniczej.
Maguyva zamienia te makra w relacje, więc agent widzi, które moduły implementują behaviour i kto wywołuje funkcję kontekstu.
Maguyva obejmuje pliki .ex i .exs. Makra Elixira stają się relacjami:
alias, import i require zapisują importy.use zapisuje import. W przypadku behaviours OTP i frameworków, takich jak GenServer, Supervisor, Agent, Task, Phoenix.Controller, Phoenix.LiveView i Ecto.Schema, zapisuje także, że moduł implementuje ten behaviour.@behaviour i bloki defimpl zapisują implementację behaviour lub protokołu.@doc, @spec, @impl i @callback, są zapisywane jako adnotacje następującej po nich funkcji. Atrybuty przechowujące wartości, takie jak @timeout 5_000, nie są.%User{} liczą się jako tworzenie instancji, raise zapisuje rzucenie wyjątku, a rescue i catch zapisują jego przechwycenie.Makra języka, takie jak def, defp, defmodule, case i with, są odfiltrowywane z wywołań, więc graf wywołań pokazuje twoje funkcje.
Accounts.register_user i z których kontrolerów?” (find_symbol, potem dependency_search incoming)GenServer?” (dependency_search)get_task_context)def, defmodule, alias i import są w gramatyce węzłami wywołań, więc w structural_search wyniki zwraca tylko preset functions, i to wyłącznie dla anonimowych funkcji fn. Dla nazwanych funkcji i modułów użyj find_symbol.IO.puts, String.*, Enum.take i Process.*, jest odfiltrowywanych z relacji. Do ich wyszukania użyj text_pattern_search.Podłącz repozytorium za pomocą szybkiego startu, a potem sprawdź macierz obsługi na stronie zgodności. W przypadku innych funkcyjnych baz kodu przeczytaj przewodnik po Haskellu.
Najlepsze dopasowanie
Workflow agentów
Szczegóły silnika
Przydatne punkty wejścia MCP
Użyj go dla funkcji kontekstu lub modułu, gdy potrzebujesz definicji i wywołujących; presety strukturalne nie wybierają nazwanych form `def`.
Użyj przejścia incoming na behaviour lub protokole, aby zobaczyć, które moduły go implementują.
Użyj go do promptów takich jak „Prześledź żądanie zakupu od kontrolera do bazy danych”.
Powiązane przewodniki
Typy w Haskellu mówią dużo. Graf pokazuje, kto na nich polega.
Rozszerzenia
.hs, .lhs
Ruby czyta się jak prozę. Zależności za nim wciąż potrzebują mapy.
Rozszerzenia
.gemfile, .gemspec, .rake, .rakefile, +2 więcej