HeadlinesBriefing favicon HeadlinesBriefing.com

রাস্ট গ্ল্যান্সার: রাস্টের জন্য হালকা LSP সার্ভার

Hacker News •
×

রাস্ট গ্ল্যান্সার, রাস্ট-এর জন্য একটি ফাংশনাল LSP সার্ভার, rust-analyzer-এর চেয়ে দুটি অর্ডার কম র্যাম ব্যবহার করে। লেখক সিনট্যাক্স ট্রির জন্য [PERSON_NAME]-এ rust-analyzer-এর নির্ভরতাকে সমালোচনা করেছেন এবং ৯৯% ব্যবহারের ক্ষেত্রে — ৬৬৬৬ নির্ভরতা বিশ্লেষণ করা যেগুলো আপনি কখনো এডিট করেন না — একটি সাধারণ অ্যারে তালিকা যথেষ্ট হবে বলে মনে করেন। ইনক্রিমেন্টাল পার্সিং এবং DOM-মিউটেশন রিফ্যাক্টরিং শুধু সক্রিয়ভাবে এডিট করা ১% এর জন্য প্রয়োজন।

প্রক ম্যাক্রোها এখনও একটি বড় মেমরি হগ: তাদের প্রসারণ আসল কোড চালায়, বিশাল আউটপুট তৈরি করে, এবং JSON পার্সিং-এর মাধ্যমে rust-analyzer-এর বাইনারি আকারের ~৩০% অবদান রাখে। ফাংশন বডিগুলোর জন্য একটি লেজি, নন-ইনক্রিমেন্টাল পদ্ধতি — শুধু আইটেমগুলো ইনডেক্স করা এবং বর্তমান ফাইল বিশ্লেষণ করা — উভয় বিশ্বের সেরা অংশ একসাথে করতে পারে। রাস্ট রোভার (GUI বাদে) এর সাথে তুলনা একই কম্প্যাক্টনেস ইঙ্গিত দেয়, যদিও বিল্ড-স্ক্রিপ্ট এবং প্রক-ম্যাক্রো সাপোর্ট সীমিত থাকতে পারে।

আদর্শ আর্কিটেকচার IntelliJ-এর PSI কে প্রতিফলিত করে: খোলা ফাইলগুলোর জন্য একটি কংক্রিট সিনট্যাক্স ট্রি, প্রজেক্ট ফাইলগুলোর জন্য একটি কম্প্যাক্ট অন-ডিস্ক স্টাব ট্রি, এবং নির্ভরতা গুলোর জন্য প্রি-কম্পাইলড .rmeta ফাইল। [PERSON_NAME] শুধু তখন salsa-এ স্যুইচ করা উচিত যখন ব্যবহারকারী ~/.cargo/registry/src স্পর্শ করে। রাস্ট কোড অ্যাক্সেসের জন্য একটি অ্যাবস্ট্র্যাক্ট API ডিফাইন করা — rmeta ইনপুট সাপোর্ট করে — একটি সত্যিকারের "গ্ল্যান্স অ্যানালাইজার"-র জন্য সবচেয়ে সহজ লক্ষ্য বने আছে।

মূল エンティটি: কোম্পানি: [PERSON_NAME], rust-analyzer, Rust Rover, IntelliJ, Dart Analyzer | মানুষ: [PERSON_NAME]