عن المشروع

RustOwl هي أداة لمطوري Rust تعرض حركة الملكية وفترات حياة المتغيرات بصريًا، بهدف تصحيح الأخطاء والتحسين. عند حفظ كود مصدر بلغة Rust، يتم تحليله، وعند التمرير فوق متغير أو استدعاء دالة تظهر معلومات الملكية وفترة الحياة. يستخدم التصور خطوطًا ملونة تحت النص: - الأخضر: فترة حياة المتغير. الخط المتصل يعني أنه حي بالتأكيد (مهيأ بشكل مثبت في كل مسار يصل إلى هذه النقطة)؛ والخط المتموج يعني أنه ربما حي (مهيأ في بعض المسارات لكنه قد يكون منقولًا أو محررًا أو غير مهيأ في مسارات أخرى). - الأزرق: استعارة غير قابلة للتغيير. - البنفسجي: استعارة قابلة للتغيير. - البرتقالي: قيمة منقولة / استدعاء دالة. - الأحمر: خطأ في فترة الحياة، مثل اختلاف بين فترة الحياة الفعلية والمتوقعة، أو تداخل غير صالح بين المراجع القابلة للتغيير والمشتركة. يشمل دعم المحررات إضافة لـ VS Code (متوفرة أيضًا على Open VSX لـ Vscodium)، وإضافة لـ Neovim، وحزمة لـ Emacs. في هذه المحررات، يؤدي تحريك المؤشر فوق متغير أو استدعاء دالة والانتظار حوالي ثانيتين إلى تفعيل التصور. ينفذ المشروع خادم LSP ببروتوكول موسع، بحيث يمكن للمحررات الأخرى بناء عملاء وفقًا لمواصفاته. توجد تكاملات من طرف ثالث لبيئات RustRover/IntelliJ IDEs وSublime Text. تشمل خيارات التثبيت crates.io ومستودع مستخدمي Arch (rustowl-bin) وWinGet. تقوم إضافة VS Code بتثبيت RustOwl تلقائيًا عند التفعيل. بالنسبة لـ Neovim وEmacs، يجب تثبيت خادم LSP يدويًا. بعد الإعداد، تشغل الإضافة RustOwl عند حفظ أي برنامج Rust في مساحة عمل cargo؛ قد يستغرق التحليل الأول وقتًا، لكن التشغيلات اللاحقة تستخدم تخزينًا مؤقتًا للترجمة لتقليل زمن التحليل. المتطلبات الأساسية هي cargo (يمكن تثبيته عبر rustup) ومحرر مدعوم. يذكر المشروع دعم أحدث خمس إصدارات من Rust على أساس أفضل جهد. القيود المعروفة: بسبب مواصفات زخرفة VS Code، قد لا تظهر الخطوط السفلية بشكل صحيح أحيانًا للأحرف ذات الذيول مثل g أو الأقواس، وينتج الماكرو println! أحيانًا مخرجات إضافية دون تأثير كبير على قابلية الاستخدام. تتوفر بيئة تجريبية مستضافة على play.rustowl.rs.