Haskell di Maguyva: graf kode untuk kelas tipe dan modul
Tipe Haskell sudah bercerita banyak. Graf menunjukkan siapa yang bergantung padanya.
Ekstensi
.hs, .lhs
Maguyva mendukung Elixir dengan AST, simbol, dan graf, sehingga agen AI dapat menelusuri modul, behaviour, protokol, dan struct di seluruh kode Phoenix dan OTP.
Hampir semua hal di Elixir adalah panggilan makro. defmodule, def, use, alias, dan @impl semuanya diurai sebagai panggilan, sedangkan use GenServer membawa perilaku yang tidak pernah terlihat di dalam berkas. Alat yang hanya melihat sintaksis panggilan tidak bisa membedakan definisi dari dependensi, atau callback GenServer dari fungsi pembantu.
Maguyva mengubah makro tersebut menjadi relasi, sehingga agen dapat melihat modul mana yang mengimplementasikan sebuah behaviour dan siapa yang memanggil sebuah fungsi context.
Maguyva mencakup berkas .ex dan .exs. Makro Elixir menjadi relasi sebagai berikut:
alias, import, dan require mencatat impor.use mencatat impor. Untuk behaviour OTP dan framework seperti GenServer, Supervisor, Agent, Task, Phoenix.Controller, Phoenix.LiveView, dan Ecto.Schema, ia juga mencatat bahwa modul tersebut mengimplementasikan behaviour itu.@behaviour dan blok defimpl mencatat implementasi sebuah behaviour atau protokol.@doc, @spec, @impl, dan @callback dicatat sebagai anotasi pada fungsi yang mengikutinya. Atribut yang menyimpan nilai, seperti @timeout 5_000, tidak dicatat.%User{} dihitung sebagai instansiasi, raise mencatat lemparan, dan rescue serta catch mencatat tangkapan.Makro bahasa seperti def, defp, defmodule, case, dan with difilter dari panggilan, sehingga graf panggilan menampilkan fungsi Anda sendiri.
Accounts.register_user, dan dari controller mana saja?” (find_symbol, lalu dependency_search incoming)GenServer?” (dependency_search)get_task_context)def, defmodule, alias, dan import adalah node panggilan dalam tata bahasanya, sehingga hanya preset functions di structural_search yang mengembalikan hasil, dan hanya untuk fungsi anonim fn. Gunakan find_symbol untuk fungsi dan modul bernama.IO.puts, String.*, Enum.take, dan Process.* difilter dari relasi. Gunakan text_pattern_search untuk itu.Hubungkan repositori dengan panduan memulai cepat, lalu periksa matriks dukungan di halaman kompatibilitas. Untuk basis kode fungsional lainnya, baca panduan Haskell.
Paling cocok untuk
Workflow agent
Detail engine
Titik masuk MCP yang berguna
Gunakan untuk fungsi context atau modul saat Anda membutuhkan definisi dan pemanggilnya; preset struktural tidak memilih bentuk `def` bernama.
Gunakan penelusuran incoming untuk melihat modul mana yang mengimplementasikan behaviour atau protokol.
Gunakan untuk prompt seperti "telusuri permintaan pembayaran dari controller sampai ke basis data".
Panduan terkait
Tipe Haskell sudah bercerita banyak. Graf menunjukkan siapa yang bergantung padanya.
Ekstensi
.hs, .lhs
Ruby terbaca seperti prosa. Namun ketergantungan di baliknya tetap membutuhkan peta.
Ekstensi
.gemfile, .gemspec, .rake, .rakefile, +2 lagi