Microsoft prévoit d'apporter un changement majeur à l'extension C# de l’éditeur Visual Studio Code, qu’elle va remplacer par le Language Server Protocol (LSP). Cette bascule va ajoutera des fonctionnalités plus avancées, y compris des expériences à code source fermé comme IntelliSense. « L'extension C# elle-même, ainsi que les implémentations LSP pour C# et Razor, resteront en open source », a précisé Microsoft. L'extension C# a été enrichie dès le départ par le fabricant de services pour .NET OmniSharp, qui a exploité les API et les protocoles disponibles. « Entre-temps, LSP s’est imposé comme mécanisme de communication interprocessus standard des outils de développement modernes », a déclaré Tim Heur, responsable du programme .NET et Visual Studio chez Microsoft, dans un communiqué publié la semaine dernière dans le dépôt GitHub d'OmniSharp.

Quand le basculement sera effectif, l'extension C# communiquera entièrement par LSP et le composant OmniSharp existant sera mis à jour pour communiquer également par LSP, selon les prévisions de Microsoft. L’usage du standard donne la possibilité à Microsoft d'apporter d’autres fonctionnalités à l'extension, y compris des expériences en circuit fermé, notamment des capacités de développement assisté par l'IA IntelliCode. Microsoft a déclaré qu'elle allait créer un composant hôte d'outils LSP intégrant des éléments open source comme le compilateur Roslyn et les outils Razor avec des briques de code source fermée pour offrir un plus large éventail de capacités d'outils. « Nous pensons que le basculement de l'extension C# vers LSP nous aidera à créer un environnement d'outils extensible et flexible qui intègre facilement d’autres expériences dans C# pour VS Code », a déclaré M. Heur.

Une migration en plusieurs étapes

Les utilisateurs de l'extension C# pourront choisir entre le système open source actuel alimenté par OmniSharp et le prochain hébergement d'outils LSP pour accéder à des expériences supplémentaires. L'hôte d'outils LSP ne sera pas open source.

Le basculement se fera en plusieurs étapes :

- Mise à jour de l'extension C# pour VS Code pour communiquer avec OmniSharp Server via LSP par défaut.

- Basculement de l'extension C# pour utiliser l'hôte d'outils LSP par défaut et permettre aux utilisateurs de choisir un autre serveur de langage.

- Livraison de l'extension avec les nouveaux paramètres par défaut et plus de fonctionnalités prêtes à l'emploi.

- Déplacement de l'extension de github.com/OmniSharp/omnisharp-vscode vers github.com/dotnet/vscode-csharp, où Microsoft en assurera la maintenance.