لغة Haskell في Maguyva: رسوم بيانية للشيفرة لفئات الأنواع والوحدات
أنواع Haskell تقول الكثير. والرسم البياني يُظهر من يعتمد عليها.
الامتدادات
.hs, .lhs
يدعم Maguyva لغة Elixir بشجرة AST والرموز والرسم البياني، ليتمكن وكلاء الذكاء الاصطناعي من تتبّع الوحدات والسلوكيات والبروتوكولات والبُنى في شيفرة Phoenix وOTP.
كل شيء تقريبًا في Elixir هو استدعاء ماكرو. تُحلَّل defmodule وdef وuse وalias و@impl كلها بوصفها استدعاءات، ويجلب use GenServer سلوكًا لا يظهر في الملف أبدًا. والأداة التي لا ترى إلا صيغة الاستدعاء لا تستطيع التمييز بين التعريف والاعتمادية، ولا بين دالة رد نداء في GenServer ودالة مساعدة.
يربط Maguyva وحدات الماكرو هذه بعلاقات، فيرى الوكيل أي الوحدات تنفّذ سلوكًا ومن يستدعي دالة سياق.
يغطي Maguyva ملفات .ex و.exs. وتُربط وحدات الماكرو في Elixir بالعلاقات على النحو التالي:
alias وimport وrequire عمليات استيراد.use عملية استيراد. ولسلوكيات OTP والأطر مثل GenServer وSupervisor وAgent وTask وPhoenix.Controller وPhoenix.LiveView وEcto.Schema، يسجّل أيضًا أن الوحدة تنفّذ ذلك السلوك.@behaviour وكتل defimpl تنفيذ سلوك أو بروتوكول.@doc و@spec و@impl و@callback بوصفها توصيفات على الدالة التي تليها. أما سمات القيم مثل @timeout 5_000 فلا تُسجَّل.%User{} إنشاءً لنسخة، ويسجّل raise رمي استثناء، ويسجّل rescue وcatch التقاطه.تُستبعد من الاستدعاءات وحدات الماكرو الخاصة باللغة مثل def وdefp وdefmodule وcase وwith، فيُظهر رسم الاستدعاءات دوالّك أنت.
Accounts.register_user، ومن أي متحكّمات؟” (find_symbol ثم dependency_search في الاتجاه الوارد)GenServer؟” (dependency_search)get_task_context)def وdefmodule وalias وimport المسمّاة هي عُقد استدعاء في القواعد النحوية، لذا لا يُرجع نتائج في structural_search إلا الإعداد المسبق functions، وللدوال المجهولة fn فقط. استخدم find_symbol للدوال والوحدات المسمّاة.IO.puts وString.* وEnum.take وProcess.*. استخدم text_pattern_search لها.اربط مستودعًا عبر دليل البدء السريع، ثم راجع مصفوفة الدعم في صفحة التوافق. ولقواعد الشيفرة الوظيفية الأخرى، اقرأ دليل لغة Haskell.
الأنسب لـ
سير عمل الوكلاء
تفاصيل المحرك
نقاط دخول مفيدة عبر MCP
استخدمه لدالة سياق أو وحدة عندما تحتاج إلى التعريف والمستدعين؛ فالإعدادات البنيوية المسبقة لا تختار صيغ `def` المسمّاة.
استخدم الاجتياز الوارد على سلوك أو بروتوكول لرؤية الوحدات التي تنفّذه.
استخدمه لمطالبات مثل "تتبّع طلب الدفع من المتحكّم إلى قاعدة البيانات".
أدلة ذات صلة
أنواع Haskell تقول الكثير. والرسم البياني يُظهر من يعتمد عليها.
الامتدادات
.hs, .lhs
تُقرأ Ruby كالنثر. لكن الاعتماديات خلفها تحتاج إلى خريطة.
الامتدادات
.gemfile, .gemspec, .rake, .rakefile, +2 أخرى