HeadlinesBriefing favicon HeadlinesBriefing.com

Rust Glancer: خادم LSP خفيف الوزن لـ Rust

Hacker News •
×

Rust Glancer، خادم LSP وظيفي لـ Rust، يستخدم ذاكرة أقل بمرتبتين من rust-analyzer. ينتقد المؤلف اعتماد rust-analyzer على [PERSON_NAME] لأشجار بناء الجملة، ويقترح أنه لحالة الاستخدام بنسبة 99% — تحليل 6666 تبعية لا تقوم بتحريرها أبدًا — ستكون قائمة بسيطة من المصفوفات كافية. التحليل التدريجي وإعادة هيكلة طفرة DOM ضرورية فقط للنسبة 1% التي يتم تحريرها بنشاط.

تظل وحدات الماكرو الإجرائية مستهلكة رئيسية للذاكرة: توسيعها يشغل كودًا حقيقيًا، وينتج مخرجات ضخمة، ويساهم بنحو 30% من حجم ثنائي rust-analyzer عبر تحليل JSON. يمكن أن يمزج نهج كسول وغير تدريجي لأجسام الدوال — فهرسة العناصر فقط وتحليل الملف الحالي — أفضل ما في العالمين. المقارنة مع Rust Rover (بدون واجهة رسومية) تشير إلى كثافة مماثلة، على الرغم من أن دعم سكريبتات البناء ووحدات الماكرو الإجرائية قد يظل محدودًا.

تعكس البنية المثالية PSI الخاصة بـ IntelliJ: شجرة بناء جملة ملموسة للملفات المفتوحة، شجرة stub مدمجة على القرص لملفات المشروع، وملفات .rmeta مجمعة مسبقًا للتبعية. يجب أن يتحول [PERSON_NAME] إلى salsa فقط عندما يلمس المستخدم ~/.cargo/registry/src. يظل تعريف واجهة برمجة تطبيقات مجردة للوصول إلى كود Rust — مع دعم مدخلات rmeta — الثمار الأسهل لمحلل "نظرة سريعة" حقيقي.

الكيانات الرئيسية: الشركات: [PERSON_NAME]، rust-analyzer، Rust Rover، IntelliJ، Dart Analyzer | الأشخاص: [PERSON_NAME]