HeadlinesBriefing favicon HeadlinesBriefing.com

Rust Glancer : Serveur LSP léger pour Rust

Hacker News •
×

Rust Glancer, un serveur LSP fonctionnel pour Rust, utilise deux ordres de grandeur moins de RAM que rust-analyzer. L'auteur critique la dépendance de rust-analyzer à [PERSON_NAME] pour les arbres de syntaxe et suggère que pour le cas d'utilisation à 99% — analyser 6666 dépendances que vous n'éditez jamais — une simple liste de tableaux suffirait. L'analyse incrémentale et les refactorisations par mutation du DOM ne sont nécessaires que pour les 1% activement édités.

Les macros de procédure restent un gros consommateur de mémoire : les étendre exécute du code réel, génère une sortie massive et contribue à ~30% de la taille du binaire de rust-analyzer via l'analyse JSON. Une approche paresseuse et non-incrémentale pour les corps de fonctions — indexer seulement les éléments et analyser le fichier courant — pourrait combiner le meilleur des deux mondes. La comparaison avec Rust Rover (sans GUI) suggère une compacité similaire, bien que le support des scripts de build et des macros de procédure puisse rester limité.

L'architecture idéale reflète le PSI d'IntelliJ : un arbre de syntaxe concret pour les fichiers ouverts, un arbre de stubs compact sur disque pour les fichiers du projet, et des fichiers .rmeta précompilés pour les dépendances. [PERSON_NAME] devrait passer à salsa seulement lorsque l'utilisateur touche ~/.cargo/registry/src. Définir une API abstraite pour l'accès au code Rust — avec support des entrées rmeta — reste le fruit le plus accessible pour un vrai "analyseur coup d'œil".

Entités clés : Entreprises : [PERSON_NAME], rust-analyzer, Rust Rover, IntelliJ, Dart Analyzer | Personnes : [PERSON_NAME]