← Retour au blog
tech 30 juillet 2026

Une journée mémorable pour le serveur de langage de Gleam : sortie de la version 1.18.0

La nouvelle version 1.18.0 de Gleam améliore considérablement son serveur de langage, renforçant son support des champs de record, les renommages de variables de type et bien plus encore.

Article inspiré de la source originale
A field day for Gleam’s language server | Gleam v.1.18.0 release ↗ gleam.run

Introduction

Gleam continue de repousser les limites avec sa dernière version, la 1.18.0. Conçu pour la machine virtuelle Erlang et les environnements JavaScript, Gleam se distingue par sa sécurité de type statique et sa scalabilité. Cette mise à jour renforce encore plus ces caractéristiques avec des améliorations significatives du serveur de langage, rendant le développement plus fluide et efficace.

Support des champs de record

Un des ajouts majeurs de cette version est le support complet des champs de record dans le serveur de langage. Cela inclut des fonctionnalités telles que 'aller à la définition', 'trouver les références' et 'renommer' pour les champs de record. Que ce soit dans une déclaration de champ, un argument étiqueté, un motif étiqueté, une mise à jour de record ou un accès à un champ de record, toutes ces opérations fonctionnent désormais de manière transparente, tant au sein d'un module qu'entre différents modules.

Exemple concret

Prenons l'exemple d'un type Person :

``gleam pub type Person { Person(name: String, age: Int) } pub fn main() { let lucy = Person(name: "Lucy", age: 10) lucy.name // ^ 'Go-to-definition' saute au champ name, et le renommer ici // renomme le champ partout où il est utilisé. } ``

Le support des champs de record permet des modifications globales rapides et sûres, augmentant ainsi la productivité des développeurs.

Renommage des variables de type

Dans la même veine, le serveur de langage permet désormais le renommage des variables de type dans les fonctions, les types et les constantes. Cela simplifie la refactorisation et évite les erreurs potentielles liées à la gestion manuelle des types.

Exemple de renommage

``gleam pub fn twice(value: a, f: fn(a) -> a) -> a { f(f(value)) } ``

Peut être renommé en :

``gleam pub fn twice(value: anything, f: fn(anything) -> anything) -> anything { f(f(value)) } ``

Mise à jour des imports pour les modules renommés

Une autre fonctionnalité pratique est la mise à jour automatique des imports pour les modules renommés. Cela évite aux développeurs de devoir manuellement retrouver et modifier chaque instance d'un module renommé, réduisant ainsi les risques d'erreurs et les pertes de temps.

Action de code pour le pattern matching

Le contrôle de flux dans Gleam repose sur le pattern matching. Le serveur de langage offre désormais une action de code qui insère rapidement une expression case, permettant aux développeurs d'ajouter leur logique facilement.

Exemple de pattern matching

``gleam pub fn main() { case load_user() { Ok(value) -> todo Error(value) -> todo } } ``

Performances JavaScript améliorées

Enfin, Gleam continue d'optimiser sa sortie JavaScript en produisant un code simple et efficace, garantissant des performances comparables à celles du code écrit manuellement.

Conclusion

Gleam v1.18.0 est une mise à jour importante qui améliore considérablement l'expérience des développeurs. Que tu sois un développeur aguerri ou un novice, les améliorations apportées par cette mise à jour rendront ton travail plus efficace et agréable.

Discutons de ton projet en 15 minutes.

Gleam Language Server Static Analysis JavaScript Erlang
Newsletter Deepthix · 100% IA · chaque lundi 8h

Un agent IA lit la tech à ta place.

Notre agent IA scanne ~200 sources par semaine et te livre les meilleurs articles le lundi 8h. Gratuit. 1 clic pour se désinscrire.

Voir la page newsletter →

Tu veux automatiser tes opérations ?

Discutons de ton projet en 15 minutes.

Réserver un call