প্রকল্প সম্পর্কে
RustOwl হলো Rust ডেভেলপারদের জন্য একটি টুল যা ভেরিয়েবলের মালিকানা স্থানান্তর ও লাইফটাইম ভিজ্যুয়ালাইজ করে, যার লক্ষ্য ডিবাগিং ও অপ্টিমাইজেশন। আপনি যখন Rust সোর্স কোড সেভ করেন, তখন তা বিশ্লেষণ করা হয়, এবং কোনো ভেরিয়েবল বা ফাংশন কলে হোভার করলে মালিকানা ও লাইফটাইম তথ্য প্রদর্শিত হয়।
ভিজ্যুয়ালাইজেশনে রঙিন আন্ডারলাইন ব্যবহার করা হয়:
- সবুজ: ভেরিয়েবলের লাইফটাইম। সলিড মানে নিশ্চিতভাবে লাইভ (এই বিন্দুতে পৌঁছানো প্রতিটি পাথে প্রমাণিতভাবে ইনিশিয়ালাইজড); তরঙ্গায়িত মানে সম্ভবত লাইভ (কিছু পাথে ইনিশিয়ালাইজড কিন্তু অন্যগুলোতে সম্ভবত মুভ, ড্রপ বা আনইনিশিয়ালাইজড)।
- নীল: ইমিউটেবল বরোয়িং।
- বেগুনি: মিউটেবল বরোয়িং।
- কমলা: ভ্যালু মুভ / ফাংশন কল।
- লাল: লাইফটাইম ত্রুটি, যেমন প্রকৃত ও প্রত্যাশিত লাইফটাইমের মধ্যে পার্থক্য, বা মিউটেবল ও শেয়ার্ড রেফারেন্সের অবৈধ ওভারল্যাপ।
এডিটর সাপোর্টের মধ্যে রয়েছে একটি VS Code এক্সটেনশন (Vscodium-এর জন্য Open VSX-এও পাওয়া যায়), একটি Neovim প্লাগইন, এবং একটি Emacs প্যাকেজ। এই এডিটরগুলোতে, কোনো ভেরিয়েবল বা ফাংশন কলের উপর কার্সর সরিয়ে প্রায় দুই সেকেন্ড অপেক্ষা করলে ভিজ্যুয়ালাইজেশন ট্রিগার হয়। প্রকল্পটি একটি বর্ধিত প্রোটোকলসহ LSP সার্ভার ইমপ্লিমেন্ট করে, তাই অন্য এডিটরগুলো এর স্পেসিফিকেশন অনুযায়ী ক্লায়েন্ট তৈরি করতে পারে। RustRover/IntelliJ IDE এবং Sublime Text-এর জন্য থার্ড-পার্টি ইন্টিগ্রেশন রয়েছে।
ইনস্টলেশনের অপশনের মধ্যে রয়েছে crates.io, Arch User Repository (rustowl-bin), এবং WinGet। VS Code এক্সটেনশন সক্রিয় হলে RustOwl স্বয়ংক্রিয়ভাবে ইনস্টল করে। Neovim ও Emacs-এর জন্য, LSP সার্ভার ম্যানুয়ালি ইনস্টল করতে হবে। সেটআপের পর, এক্সটেনশনটি কোনো cargo ওয়ার্কস্পেসে যেকোনো Rust প্রোগ্রাম সেভ করার সময় RustOwl চালায়; প্রথম বিশ্লেষণে সময় লাগতে পারে, কিন্তু পরবর্তী রানগুলো কম্পাইল ক্যাশিং ব্যবহার করে বিশ্লেষণের সময় কমায়।
পূর্বশর্ত হলো cargo (rustup-এর মাধ্যমে ইনস্টলযোগ্য) এবং একটি সমর্থিত এডিটর। প্রকল্পটি সর্বশেষ পাঁচটি Rust সংস্করণে সর্বোত্তম-প্রচেষ্টার ভিত্তিতে সাপোর্টের কথা বলে। পরিচিত সীমাবদ্ধতা: VS Code ডেকোরেশন স্পেসিফিকেশনের কারণে, g বা বন্ধনীর মতো ডিসেন্ডারযুক্ত অক্ষরগুলো মাঝে মাঝে আন্ডারলাইন সঠিকভাবে প্রদর্শন নাও করতে পারে, এবং println! ম্যাক্রো মাঝে মাঝে অতিরিক্ত আউটপুট তৈরি করে যা ব্যবহারযোগ্যতায় উল্লেখযোগ্যভাবে প্রভাব ফেলে না। play.rustowl.rs-এ একটি হোস্টেড প্লেগ্রাউন্ড উপলব্ধ।
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.