Claude Code est un agent d'IA de codage accessible depuis un terminal, un ordinateur de bureau ou le Web. La mise à jour Claude Code v2.0.74 a intégré une fonctionnalité d'intelligence de code basée sur le protocole LSP (Language Server Protocol), en plus de la recherche traditionnelle basée sur les outils « grep » et « glob ». Cet ajout permet aux utilisateurs d'appeler directement depuis l'agent des opérations de code basées sur la structure telles que « go-to-definition », « find references » et l'obtention d'informations au survol, ce qui améliore encore la précision et l'efficacité de la recherche et de la refactorisation dans les bases de code à grande échelle.Claude Code est un assistant d'IA de codage développé par Anthropic. L'assistant comprend votre base de code et vous aide à coder plus rapidement grâce à des commandes en langage naturel. Il s'intègre directement à votre environnement de développement et rationalise votre flux de travail, sans nécessiter de serveurs supplémentaires ou de configuration complexe. Claude Code est accessible depuis un terminal, un ordinateur de bureau ou le Web.
Les principales fonctionnalités de Claude Code sont : éditer des fichiers et corriger de bogues dans une base de code, répondre aux questions sur l'architecture et la logique du code, exécuter et corriger des tests, faire du linting, etc. L'assistant d'Anthropic offre également de nombreuses autres commandes.
L'outil a été mis à jour à plusieurs reprises cette année, chaque mouture intégrant de nouvelles fonctionnalités. Anthropic vient de publier Claude Code v2.0.74, avec de nouvelles fonctionnalités, dont la prise en charge native du protocole LSP (Language Server Protocol). Cette amélioration permet à l'IA d'accéder directement aux informations sur la structure du code, à l'instar des EDI. Cette évolution renforce les capacités de l'assistant de codage.
Rappel sur le protocole LSP (Language Server Protocol)
Le Language Server Protocol (LSP) est un protocole ouvert basé sur JSON-RPC destiné à être utilisé entre les éditeurs de code source ou les environnements de développement intégrés (EDI) et les serveurs qui fournissent des « outils d'intelligence linguistique » : des fonctionnalités spécifiques aux langages telles que la complétion de code, la coloration syntaxique et le marquage des avertissements et des erreurs, ainsi que des routines de refactorisation.
L'objectif du protocole LSP est de permettre la mise en œuvre et la distribution du support des langages de programmation indépendamment de tout éditeur ou EDI donné. Au début des années 2020, le protocole LSP est rapidement devenu la « norme » pour les fournisseurs d'outils d'intelligence linguistique.
Le protocole LSP a été initialement développé pour Microsoft Visual Studio Code et est désormais une norme ouverte. Le 27 juin 2016, Microsoft a annoncé une collaboration avec Red Hat et Codenvy afin de normaliser les spécifications du protocole. Ses spécifications sont hébergées et développées sur GitHub.
Qu'apporte la compatibilité LSP de l'agent Claude Code ?
Claude Code v2.0.30 et les versions ultérieures incluaient en interne l'outil LSP, mais la version v2.0.74 rend disponible l'outil LSP. Grâce à cela, il est désormais possible d'accéder directement à la définition des symboles, aux références, aux informations de type et à la recherche de symboles via le serveur LSP, alors qu'auparavant, le code était suivi à l'aide de la recherche de chaînes de caractères et de la lecture de fichiers avec « glob » et « grep ».
LSP ajoute les fonctionnalités EDI de base que les développeurs attendent de tout outil de codage. Concrètement, la fonction « Go-to-definition » permet d'accéder aux définitions des symboles sans « grep ». La fonction « Find references » localise chaque utilisation d'une fonction ou d'une variable. La documentation contextuelle quant à elle affiche des indications de type au passage de la souris. Et les diagnostics détectent les erreurs en temps réel.
La mise en œuvre de Claude Code nécessite d'activer la variable d'environnement ENABLE_LSP_TOOLS=1. Il existe des plug-ins préconstruits pour TypeScript (vtsls), Python (pyright) et Rust (rust-analyzer), avec une boutique couvrant plus de 10 langages : Go, Java, C/C++, C#, PHP, Kotlin, Ruby, HTML/CSS. Cela comble le fossé en matière de fonctionnalités avec les assistants Cursor et GitHub Copilot, qui ont tous deux intégré LSP dès le départ.
L'avantage pratique réside dans l'efficacité des jetons. Les recherches LSP déterministes surpassent le contexte brûlant sur la navigation générée par les grands modèles de langage (LLM). Les développeurs sur Hacker News ont noté des améliorations. Ils ont signalé une refactorisation plus rapide et un renommage des variables plus fiable dans l'ensemble des bases de code, des tâches mécaniques où les modèles probabilistes font perdre du temps.
Impact de l'intégration de LSP dans l'assistant Claude Code
Comme souligné précédemment, l'intégration de LSP dans Claude Code permet de passer d'une recherche basée sur « grep » à une recherche basée sur la structure. Auparavant, Claude Code utilisait les outils tels que « glob » et « grep » pour rechercher du code à partir du nom de fichier, du chemin d’accès ou de motifs textuels. Cette méthode est certes flexible, mais elle présente également plusieurs inconvénients, dont en voici quelques-uns :
- lors du renommage de types et de noms de classes, il est facile de commettre des erreurs de détection ou d'omission ;
- lorsque les symboles homonymes sont nombreux, il est facile d'obtenir des définitions et des références non pertinentes ;
- il est nécessaire de suivre soi-même les relations au niveau de la structure, notamment les relations d'héritage et d'interface.
Lorsque Claude Code traite des bases de code volumineuses, il est essentiel de maîtriser le coût de lecture de chaque fichier en matière de tokens. Grâce à la prise en charge du LSP, l’agent peut se limiter à l’analyse des seuls symboles pertinents, ce qui présente les avantages suivants :
- lors d’une analyse de portée ou d’une refactorisation, LSP permet de réduire le nombre de fichiers à analyser ;
- il limite le temps passé à examiner des résultats « grep » purement textuels et permet de consacrer davantage de tokens utiles au code réellement pertinent ;
- en conséquence, il devient possible de réduire significativement la consommation de tokens ainsi que le temps d’exécution par session.
Certains utilisateurs rapportent que « dans certains cas, l'intégration de LSP n'a pas eu d'impact significatif sur le taux de réussite des tâches ». Mais en matière de réduction de la portée de la recherche, cet ajout est particulièrement efficace pour les référentiels volumineux et multilangages.
L'intégration de LSP met en lumière une vérité gênante
José Valim, créateur d'Elixir, a souligné une limitation : « les API LSP sont peu pratiques pour une utilisation agentique, car elles nécessitent de passer « fichier:ligne:colonne ». Vous ne pouvez pas demander « dites-moi où Foo#bar est défini ». En effet, LSP a été conçu pour que les humains cliquent sur la ligne 47, colonne 12. Les agents attendent des requêtes sémantiques (« où se trouve cette fonction ? ») et non des API basées sur des coordonnées.
Claude Code dispose d'une parité fonctionnelle, mais il s'appuie sur un paradigme conçu pour les clics du curseur, et non pour les requêtes conversationnelles. Les développeurs ont fait écho à cette tension dans les discussions sur les plateformes communautaires. Certains ont qualifié le marché de « prématuré ». D'autres ont souligné l'incertitude quant au moment où l'agent utilise réellement le protocole LSP par rapport au recours à l'inférence LLM.
La communauté est déjà en train de construire des couches sémantiques par-dessus : des projets tels que « refact-lsp » ajoutent des index AST (Arbre Syntaxique Abstrait) et des bases de données vectorielles conçus pour les flux de travail agentiques. D'autres projets pourraient bientôt voir le jour.
Selon de nombreux développeurs, la question n'est pas de savoir si le LSP est utile. Il l'est. La question est de savoir si nous construisons les bonnes abstractions pour le développement natif de l'IA, ou si nous nous contentons d'adapter d'anciens outils à des flux de travail fondamentalement nouveaux.
Les réactions à l'ajout de LSP à l'assistant Claude Code
L'ajout de LSP suscite un débat comparant les agents CLI aux EDI, certains utilisateurs critiquant les fournisseurs d'EDI pour ne pas avoir intégré plus tôt leurs outils de refactorisation dans les agents d'IA. La mise à jour intervient juste après que Cursor a racheté la startup de révision de code Graphite. Le timing reflète la dynamique : les assistants de codage sont engagés dans une course, et la prise en charge du LSP est désormais incontournable.
Le compromis est...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.