HeadlinesBriefing favicon HeadlinesBriefing.com

रस्ट ग्लांसर: रस्ट के लिए हल्का LSP सर्वर

Hacker News •
×

रस्ट ग्लांसर, रस्ट के लिए एक कार्यात्मक LSP सर्वर, rust-analyzer की तुलना में दो क्रम कम रैम का उपयोग करता है। लेखक सिंटैक्स ट्री के लिए [PERSON_NAME] पर rust-analyzer की निर्भरता की आलोचना करता है और सुझाव देता है कि 99% उपयोग के मामले के लिए — 6666 निर्भरताओं का विश्लेषण करना जिन्हें आप कभी संपादित नहीं करते — एक साधारण ऐरे सूची पर्याप्त होगी। इंक्रीमेंटल पार्सिंग और DOM-म्यूटेशन रीफैक्टरिंग केवल सक्रिय रूप से संपादित 1% के लिए आवश्यक हैं।

प्रोक मैक्रोज़ एक प्रमुख मेमोरी हॉग बने हुए हैं: उनका विस्तार वास्तविक कोड चलाता है, विशाल आउटपुट उत्पन्न करता है, और JSON पार्सिंग के माध्यम से rust-analyzer के बाइनरी आकार में ~30% का योगदान देता है। फ़ंक्शन बॉडीज़ के लिए एक आलसी, गैर-इंक्रीमेंटल दृष्टिकोण — केवल आइटम्स को इंडेक्स करना और वर्तमान फ़ाइल का विश्लेषण करना — दोनों दुनिया के सर्वश्रेष्ठ को मिश्रित कर सकता है। रस्ट रोवर (GUI घटाकर) के साथ तुलना समान कॉम्पैक्टनेस का सुझाव देती है, हालांकि बिल्ड-स्क्रिप्ट और प्रोक-मैक्रोज़ समर्थन सीमित रह सकता है।

आदर्श आर्किटेक्चर IntelliJ के PSI को दर्शाता है: खुली फ़ाइलों के लिए एक ठोस सिंटैक्स ट्री, प्रोजेक्ट फ़ाइलों के लिए एक कॉम्पैक्ट ऑन-डिस्क स्टब ट्री, और निर्भरताओं के लिए प्री-कंपाइल्ड .rmeta फ़ाइलें। [PERSON_NAME] को केवल तभी साल्सा पर स्विच करना चाहिए जब उपयोगकर्ता ~/.cargo/registry/src को छूता है। रस्ट कोड एक्सेस के लिए एक अमूर्त API को परिभाषित करना — rmeta इनपुट का समर्थन करना — एक सच्चे "ग्लांस एनालाइज़र" के लिए सबसे आसान लक्ष्य बना हुआ है।

मुख्य संस्थाएं: कंपनियां: [PERSON_NAME], rust-analyzer, Rust Rover, IntelliJ, Dart Analyzer | लोग: [PERSON_NAME]