Haskell dalam Maguyva: graf kod untuk kelas jenis dan modul
Jenis Haskell sudah banyak bercerita. Graf menunjukkan siapa yang bergantung padanya.
Sambungan fail
.hs, .lhs
Maguyva menyokong Elixir dengan AST, simbol dan graf, supaya ejen AI boleh menjejak modul, behaviour, protokol dan struct dalam kod Phoenix dan OTP.
Hampir segala-galanya dalam Elixir ialah panggilan makro. defmodule, def, use, alias dan @impl semuanya dihuraikan sebagai panggilan, manakala use GenServer membawa masuk tingkah laku yang tidak pernah kelihatan dalam fail. Alat yang hanya melihat sintaks panggilan tidak dapat membezakan takrifan daripada kebergantungan, atau callback GenServer daripada fungsi pembantu.
Maguyva menukar makro tersebut kepada hubungan, supaya ejen dapat melihat modul mana yang melaksanakan sesuatu behaviour dan siapa yang memanggil fungsi konteks.
Maguyva merangkumi fail .ex dan .exs. Makro Elixir menjadi hubungan seperti berikut:
alias, import dan require merekodkan import.use merekodkan import. Untuk behaviour OTP dan rangka kerja seperti GenServer, Supervisor, Agent, Task, Phoenix.Controller, Phoenix.LiveView dan Ecto.Schema, ia juga merekodkan bahawa modul itu melaksanakan behaviour tersebut.@behaviour dan blok defimpl merekodkan pelaksanaan sesuatu behaviour atau protokol.@doc, @spec, @impl dan @callback direkodkan sebagai anotasi pada fungsi yang menyusul. Atribut yang menyimpan nilai, seperti @timeout 5_000, tidak direkodkan.%User{} dikira sebagai instansiasi, raise merekodkan lontaran, dan rescue serta catch merekodkan tangkapan.Makro bahasa seperti def, defp, defmodule, case dan with ditapis daripada panggilan, jadi graf panggilan menunjukkan fungsi anda sendiri.
Accounts.register_user, dan daripada pengawal mana?” (find_symbol, kemudian dependency_search arah masuk)GenServer?” (dependency_search)get_task_context)def, defmodule, alias dan import ialah nod panggilan dalam tatabahasanya, jadi hanya pratetap functions dalam structural_search yang memulangkan keputusan, dan hanya untuk fungsi tanpa nama fn. Gunakan find_symbol untuk fungsi dan modul bernama.IO.puts, String.*, Enum.take dan Process.* ditapis daripada hubungan. Gunakan text_pattern_search untuknya.Sambungkan repositori dengan panduan permulaan pantas, kemudian semak matriks sokongan di halaman keserasian. Untuk pangkalan kod fungsian yang lain, baca panduan Haskell.
Paling sesuai
Aliran kerja ejen
Butiran enjin
Titik masuk MCP yang berguna
Gunakan untuk fungsi konteks atau modul apabila anda memerlukan takrifan dan pemanggilnya; pratetap struktur tidak memilih bentuk `def` bernama.
Gunakan penelusuran arah masuk untuk melihat modul mana yang melaksanakan sesuatu behaviour atau protokol.
Gunakan untuk gesaan seperti "jejaki permintaan pembayaran daripada pengawal hingga ke pangkalan data".
Panduan berkaitan
Jenis Haskell sudah banyak bercerita. Graf menunjukkan siapa yang bergantung padanya.
Sambungan fail
.hs, .lhs
Ruby dibaca seperti prosa. Namun pergantungan di sebaliknya tetap memerlukan peta.
Sambungan fail
.gemfile, .gemspec, .rake, .rakefile, +2 lagi