Haskell i Maguyva: kodegrafer for typeklasser og moduler
Typene i Haskell sier mye. Grafen viser hvem som lener seg på dem.
Filendelser
.hs, .lhs
Maguyva støtter Elixir med AST, symboler og graf, slik at AI-agenter kan følge moduler, behaviours, protokoller og structs i Phoenix- og OTP-kode.
Nesten alt i Elixir er et makrokall. defmodule, def, use, alias og @impl tolkes alle som kall, og use GenServer henter inn atferd som aldri vises i filen. Et verktøy som bare ser kallsyntaksen, klarer ikke å skille en definisjon fra en avhengighet, eller en GenServer-callback fra en hjelpefunksjon.
Maguyva gjør disse makroene om til relasjoner, slik at en agent ser hvilke moduler som implementerer en behaviour og hvem som kaller en kontekstfunksjon.
Maguyva dekker .ex- og .exs-filer. Makroene i Elixir blir til relasjoner slik:
alias, import og require registrerer importer.use registrerer en import. For OTP- og rammeverks-behaviours som GenServer, Supervisor, Agent, Task, Phoenix.Controller, Phoenix.LiveView og Ecto.Schema registreres det også at modulen implementerer den behaviouren.@behaviour-attributter og defimpl-blokker registrerer implementasjonen av en behaviour eller en protokoll.@doc, @spec, @impl og @callback registreres som annotasjoner på funksjonen som følger. Verdiattributter som @timeout 5_000 gjør det ikke.%User{}-structliteraler teller som instansiering, raise registrerer en throw, og rescue og catch registrerer en catch.Språkmakroer som def, defp, defmodule, case og with filtreres bort fra kallene, slik at kallgrafen viser funksjonene dine.
Accounts.register_user, og fra hvilke kontrollere?» (find_symbol, deretter dependency_search incoming)GenServer?» (dependency_search)get_task_context)def-, defmodule-, alias- og import-former er kallnoder i grammatikken, så i structural_search returnerer bare presetet functions resultater, og bare for anonyme fn-funksjoner. Bruk find_symbol for navngitte funksjoner og moduler.IO.puts, String.*, Enum.take og Process.*, filtreres bort fra relasjonene. Bruk text_pattern_search for dem.Koble til et repositorium med hurtigstarten, og se deretter støttematrisen på kompatibilitetssiden. For andre funksjonelle kodebaser bør du lese veiledningen for Haskell.
Best egnet
Agent-arbeidsflyter
Motordetaljer
Nyttige MCP-inngangspunkter
Bruk det for en kontekstfunksjon eller modul når du trenger definisjonen og kallerne; strukturelle presets velger ikke navngitte `def`-former.
Bruk incoming-traversering på en behaviour eller en protokoll for å se hvilke moduler som implementerer den.
Bruk det for prompter som «spor en betalingsforespørsel fra kontrolleren til databasen».
Relaterte guider
Typene i Haskell sier mye. Grafen viser hvem som lener seg på dem.
Filendelser
.hs, .lhs
Ruby leses som prosa. Avhengighetene bak trenger likevel et kart.
Filendelser
.gemfile, .gemspec, .rake, .rakefile, +2 til