Qu’est-ce que l’édition collaborative de code ?

L’édition collaborative de code permet à plusieurs développeurs de travailler sur le même code en même temps, chacun dans son propre navigateur. Elle est utile pour la programmation en binôme, les entretiens, l’enseignement et le débogage d’un extrait de code à plusieurs, sans avoir à configurer un IDE partagé ni à s’échanger des fichiers.

Pour que tout le monde dispose d’une copie identique, les modifications sont transmises sous forme de petites éditions plutôt que de fichiers entiers, et un serveur détermine l’ordre dans lequel elles sont appliquées. Les modifications effectuées au même moment sont ajustées les unes par rapport aux autres afin que les deux soient conservées.

Description de l’outil

Cet outil est un éditeur TypeScript partagé avec coloration syntaxique. Ouvrez-le et envoyez le lien : toutes les personnes présentes dans la salle modifient le même code en temps réel, voient les curseurs des autres et peuvent valider ou formater le code pour tout le monde en un clic.

La validation vérifie la syntaxe à l’aide de l’analyseur Babel et de son module complémentaire TypeScript, qui reconnaissent les annotations de type, les interfaces, les types génériques et les énumérations. Le formatage utilise l’analyseur TypeScript de Prettier, et le code formaté ne remplace que les lignes modifiées ; ainsi, ce que les autres saisissent entre-temps reste à sa place.

Fonctionnalités

  • Édition en temps réel - les modifications de chacun apparaissent instantanément et sont fusionnées lorsque plusieurs personnes écrivent au même moment
  • Curseurs et sélections - voyez où se trouve chaque personne, avec la couleur affichée à côté de son nom
  • Valider - vérifie la syntaxe TypeScript et affiche la première erreur, avec sa ligne et sa colonne
  • Formater - reformate le code avec Prettier pour toutes les personnes présentes dans la salle
  • Copier et télécharger - conservez une copie du code dans un fichier .ts

Fonctionnement

À l’ouverture de la page, une salle est créée sur le serveur de synchronisation et son lien est placé dans la barre d’adresse. Toutes les personnes qui ouvrent ce lien rejoignent la même salle et voient le même document.

Chaque modification est envoyée au serveur sous la forme d’une courte description de ce qui a changé - les caractères insérés ou supprimés, et à quel endroit - plutôt que sous la forme du texte entier. Le serveur met les modifications de tout le monde dans un ordre unique, déplace une modification effectuée sur une ancienne version après celles qui l’ont précédée, puis transmet le résultat aux autres. Vos propres saisies apparaissent immédiatement, et les modifications des autres sont fusionnées autour d’elles, afin que personne ne perde son travail lorsque deux personnes modifient le document au même moment.

Le document est conservé uniquement dans la mémoire du serveur tant que la salle est ouverte. Si vous rechargez la page, vous retrouvez la salle avec le texte tel qu’il était ; dès que tout le monde a quitté la salle, celle-ci et son texte disparaissent.

Limitations

  • Une salle peut accueillir jusqu’à 20 personnes et contenir 100 000 caractères.
  • Rien n’est conservé après la fermeture d’une salle. Téléchargez le texte avant le départ de la dernière personne.
  • Les modifications très rapides ou très volumineuses, comme le collage du document entier plusieurs fois de suite, sont refusées et l’éditeur recharge le texte de la salle.
  • L’ouverture du lien d’une salle dans un autre éditeur collaboratif (par exemple, une salle SQL dans l’éditeur JavaScript) affiche « Salle introuvable » : chaque salle est associée à un seul langage.
  • La validation vérifie uniquement la syntaxe, pas les types : le code qui ne compilerait pas à cause d’une erreur de type est tout de même accepté. JSX (.tsx) n’est pas pris en charge.