Voir le flux RSS

Rust, WebAssembly et plein d'autres trucs sympathiques.

[Actualité] Première release candidate pour la 1.0 de RLS !

Noter ce billet
par , 26/08/2018 à 23h46 (3020 Affichages)
Une toolchain plutôt musclée

RLS (Rust Language Server) est une chaîne d’outils, indépendante de toute plateforme connue (e.g. Eclipse, IntelliJ), destinée à fournir le confort d’un IDE tout en offrant une interface aux éditeurs qui souhaitent la supporter. Dans les faits, RLS est un serveur communiquant en arrière-plan avec un client (qui peut être un éditeur ou un environnement complet), qui se chargera de fournir les diagnostics respectifs de chaque outil du backend. Par ailleurs, vous pouvez consulter une implémentation du frontend de RLS pour Visual Studio Code sur son dépôt.

Ce 19 août, la première release candidate à la version 1.0 a été annoncée et prévue pour le 3 septembre. Durant cette période, la communauté est vivement encouragée à chercher le moindre bug, le moindre problème et à le signaler pour ceux qui en ont le temps et l’envie. Passons à la révision !

Nom : 5XYxwJU.png
Affichages : 1332
Taille : 25,3 Ko

Support

Bien que toute jeune, la suite est supportée par 4 outils (dont 1 IDE) présentés ci-dessous:

  1. Visual Studio Code;
  2. Atom;
  3. Sublime Text;
  4. Eclipse (lien original).


Rust disposant dès maintenant de son propre module pour IntelliJ, nous pourrions espérer que cette plateforme rejoigne bientôt la liste !

Fonctionnalités proposées

Au même titre qu’un environnement de développement intégré "classique", vous pourrez y retrouver tout le nécessaire pour ne plus avoir à jouer avec ALT+TAB toute la journée.

Coloration syntaxique

Chaque éditeur (standalone ou non) supportera sa propre coloration pour la syntaxe du langage.

Complétion du code

Comme précisé dans le billet, la complétion ne sera que syntaxique. Cela signifie que l’analyseur peut parfois vous transmettre un diagnostic incorrect dû à son champ d’action réduit. Comme contre exemple, je pourrais présenter l’analyseur statique des IDE IntelliJ qui, lui, analyse également la structure de votre code et peut pratiquement remplacer les retours du compilateur du langage cible (ce n’est toutefois pas encore le cas pour Rust).

Pour les curieux, cette fonctionnalité est fournie par la crate Racer.

Erreurs et avertissements

Les erreurs et avertissements normalement renvoyés par le compilateur seront directement affichés à la ligne près, rendant la résolution de ces erreurs de compilation plus aisée.

Formatage

Géré évidemment par Rustfmt, lui-même en phase de passer à sa première version stable(0.99.3) à l’heure où j’écris ces lignes.

Analyse intelligente du code

Comme cité plus haut, cette fonctionnalité se rapproche de l’analyse statique. Entre autre, elle permettra de:

  • détecter la documentation d’une signature en passant sa souris dessus au lieu d’aller directement chercher ce que nous voulons sur le site de la crate en question;
  • trouver toutes les occurrences d’une signature dans notre code;
  • détecter les implémentations des traits et des types concrets;
  • détecter et réajuster les modèles d’imports obsolètes;


En revanche, il est précisé que toutes ses aides à l’analyse ne seront pas disponibles au sein de la logique écrite dans les macros, voire même lors de leur utilisation. Elles ne seront pas non plus disponibles pour des éléments parents d’un élément courant.

Code Rust : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
foo::bar::baz
// ^ Dans ce chemin, nous ne
// bénéficierons que d'une analyse
// pour `baz` et non `bar` ni `foo`.




Me concernant, j’ai, jusqu’ici, toujours utilisé chacun de ces outils séparément (sans RLS, donc) et offrent déjà, selon moi, une aide très précieusement sur beaucoup de points. N’étant "qu’une" amélioration de ce qui existe déjà, cette préversion sera un prétexte comme un autre pour tester la chaîne et certainement l’adopter.

Amusez-vous bien !

Source

Envoyer le billet « Première release candidate pour la 1.0 de RLS ! » dans le blog Viadeo Envoyer le billet « Première release candidate pour la 1.0 de RLS ! » dans le blog Twitter Envoyer le billet « Première release candidate pour la 1.0 de RLS ! » dans le blog Google Envoyer le billet « Première release candidate pour la 1.0 de RLS ! » dans le blog Facebook Envoyer le billet « Première release candidate pour la 1.0 de RLS ! » dans le blog Digg Envoyer le billet « Première release candidate pour la 1.0 de RLS ! » dans le blog Delicious Envoyer le billet « Première release candidate pour la 1.0 de RLS ! » dans le blog MySpace Envoyer le billet « Première release candidate pour la 1.0 de RLS ! » dans le blog Yahoo

Mis à jour 27/08/2018 à 16h56 par Songbird (Reformulation concernant la coloration syntaxique)

Catégories
Programmation

Commentaires

  1. Avatar de Mickael_Istria
    • |
    • permalink
    La coloration syntaxique n'est pas fournie par RLS. Chaque editeur l'implemente comme il le souhaite, mais la specification Language Server sur laquelle s'appuie RLS ne supporte pas la coloration syntaxique. En pratique, la plupart des editeurs utilisent maintenant des grammaire TextMate pour faire ca, mais c'est encore une fois independanct du Language Server Protocol et de RLS.

    Rust disposant dès maintenant de son propre module pour IntelliJ, nous pourrions espérer que cette plateforme rejoigne bientôt la liste !
    Pour l'instant, il semblerait que JetBrains boude l'utilisation du Language Server Protocol et de ses implementations dans leurs outils. Il y a une extension communautaire, mais JetBrains a tendance a preferer utiliser leurs modeles internes plutot que de reutiliser des composants tout faits. Donc il est peu probable qu'IntelliJ se mette a officiellement supporter Rust via RLS d'ici peu.

    N’étant "qu’une" amélioration de ce qui existe déjà, cette préversion sera un prétexte comme un autre pour tester la chaîne et certainement l’adopter.
    Les Language Servers et RLS ne sont pas particulierement des technologies qui sont dediees aux utilisateurs finaux mais plutot aux integrateurs, fournisseurs de langages ou d'outils. Donc a l'usage, utiliser RLS ne devrait pas changer grand chose dans un premier temps. Cependant, avec la diversite d'outils majeurs qui l'utilisent justement parce qu'il se base sur le Language Server Protocol et qui du coup contribuent a son amelioration collectivement, il ne fait aucun doute que la popularite va grandir et que RLS va devenir la brique standard pour l'edition de code en Rust.
  2. Avatar de Songbird
    • |
    • permalink
    Bonjour,

    La coloration syntaxique n'est pas fournie par RLS.
    Effectivement, ce n'était absolument pas comme ça que je voulais tourner ma phrase. C'est corrigé, merci !