GitHub annonce que le serveur de langage C++ de Copilot CLI configure désormais automatiquement les projets MSBuild, mais le guide du dépôt, modifié pour la dernière fois le 21 octobre, décrit encore cette configuration automatique comme une expérience sous Windows, désactivée par défaut, activée par indicateur et lancée seulement au démarrage

Published · AI Daily — AI-assisted deep research, methodology & disclosure

Le 10 novembre 2026, GitHub a indiqué que le Microsoft C++ Language Server pour Copilot CLI intègre désormais son extracteur de commandes de compilation MSBuild et l'appelle automatiquement quand le serveur démarre à l'ouverture du projet, si bien qu'un agent n'a plus à trouver et exécuter une compétence de configuration ; GitHub dit que la génération est déterministe et réduit les jetons de configuration, sans donner de chiffres. Le guide du dépôt, modifié pour la dernière fois le 21 octobre, dit que la configuration MSBuild automatique est désactivée par défaut, soumise à un indicateur de fonctionnalité, décrite pour Windows et exécutée seulement au démarrage, et le README dit toujours aux utilisateurs de MSBuild d'exécuter la compétence. Les sources ne disent pas lequel est à jour. Des paramètres state.json par utilisateur permettent de la désactiver ou de fixer un délai. CMake et les autres compilations ont toujours besoin de leur propre compile_commands.json ou d'une compétence. Le serveur est en préversion, exige un abonnement Copilot et ne prend en charge ni le renommage, ni la mise en forme, ni la synchronisation des documents texte.

Le 10 novembre 2026, le journal des modifications de GitHub a annoncé que le Microsoft C++ Language Server pour GitHub Copilot CLI intègre désormais son extracteur de commandes de compilation MSBuild et l'appelle automatiquement. Selon le billet, un agent n'a plus besoin de trouver et d'exécuter une compétence de configuration distincte avant d'obtenir une intelligence de code précise pour un projet C++ fondé sur MSBuild. Ce compte rendu s'appuie sur ce billet et sur trois pages du dépôt microsoft/cpp-language-server : le README, le guide de génération des commandes de compilation et le tableau des fonctionnalités LSP prises en charge. Il n'a pas installé le plugin, ouvert de projet ni exécuté l'extracteur. Il n'a pas non plus lu l'image du billet, le billet antérieur du 2 juillet auquel il renvoie, ni les autres pages de documentation liées.

Le billet décrit l'ancienne configuration et ce qui change. Auparavant, aller à la définition, rechercher les références et utiliser les autres fonctions du serveur de langage pour un projet C++ fondé sur MSBuild demandait l'une de deux choses : fournir votre propre fichier compile_commands.json, ou laisser Copilot trouver et exécuter une compétence de configuration pour générer une base de données de compilation. GitHub dit que cette étape de découverte supplémentaire ajoutait du temps de configuration et consommait des jetons avant que Copilot puisse commencer à travailler sur votre code. Le billet cite trois changements. L'extracteur de commandes de compilation est livré avec le serveur de langage, il est donc toujours disponible. Copilot appelle l'extracteur lorsqu'il démarre le serveur de langage à l'ouverture du projet, sans action manuelle ni compétence de configuration lancée par l'agent. Enfin, la génération de la base de données de compilation pour les projets MSBuild est déterministe, ce qui, selon GitHub, réduit les jetons utilisés pour la configuration. Le billet ne donne aucun chiffre sur le temps ou les jetons économisés : ces avantages sont la description de GitHub, pas un résultat mesuré.

Le guide du dépôt explique pourquoi ce fichier compte. Le serveur de langage utilise un fichier compile_commands.json pour comprendre comment chaque unité de traduction d'un projet est compilée. Les options du compilateur, les chemins d'inclusion et les définitions du préprocesseur influent tous sur la façon dont le serveur interprète les fichiers source, et le guide dit que cette base de données de compilation fournit le contexte de compilation nécessaire à un « aller à la définition », une recherche de références et une autre intelligence de code sémantique exacts. Son exemple : quand vous demandez à Copilot de trouver la définition d'une fonction ou d'identifier ses appelants, le serveur de langage utilise ce contexte de compilation pour résoudre les relations entre symboles.

Le guide décrit la voie automatique avec des conditions que le billet ne mentionne pas. Dans sa section MSBuild, une note dit que la configuration MSBuild automatique est désactivée par défaut et n'est disponible que si l'expérience est activée pour vous par un indicateur de fonctionnalité. La même section la décrit pour Windows : lorsque l'expérience est activée, le serveur de langage exécute son extracteur intégré au démarrage quand compile_commands.json doit être généré. Le démarrage rapide du README indique aussi toujours aux utilisateurs de projets CMake ou MSBuild (vcxproj) d'exécuter la compétence generate-compile-commands. La page du dépôt montre le dernier commit du guide le 21 octobre 2026 et celui du README le 3 novembre 2026, tous deux avant le billet du 10 novembre. Les sources ne disent pas si le billet signifie que l'expérience est désormais active pour tous ou si le guide est dépassé, et ce compte rendu ne tranche pas. Elles ne disent pas non plus comment un utilisateur peut vérifier si l'expérience est activée pour lui.

Le guide précise aussi ce que la voie automatique ne fait pas. Elle s'exécute au démarrage, et non en réponse aux changements du projet pendant une session de la CLI. Si le projet change pendant une session, le guide dit d'utiliser la compétence de Copilot CLI pour régénérer compile_commands.json. Il indique qu'une surveillance du système de fichiers pour détecter ces changements est prévue dans une future mise à jour, sans donner de date.

Deux paramètres contrôlent l'extraction automatique, selon le guide. Ils se trouvent dans un fichier state.json propre à chaque utilisateur sous Windows, à l'emplacement %LOCALAPPDATA%\mscppls\state.json. Ils s'appliquent à tous les dépôts de cet utilisateur et n'ont pas leur place dans le cpp-lsp.json d'un projet ni dans le lsp.json de Copilot CLI. Les étapes sont les suivantes : fermer les sessions Copilot CLI qui utilisent le serveur de langage C++, ajouter ou mettre à jour les propriétés dans le fichier en conservant toutes les autres, puis redémarrer Copilot CLI. Mettre auto_generate_compile_commands_for_msbuild à false désactive l'extraction automatique. La mettre à true la réactive, mais ne contourne pas l'indicateur de fonctionnalité : l'expérience doit aussi être activée. msbuild_extractor_timeout_seconds fixe un délai d'expiration en secondes et ne s'applique que si l'extraction automatique est activée ; l'exemple du guide utilise 120. Les changements prennent effet au prochain démarrage du serveur de langage. Le guide avertit que le fichier d'état peut aussi contenir des données d'authentification et d'autres paramètres de l'utilisateur : il ne faut donc pas remplacer un fichier existant par le seul exemple, ni le commiter dans un dépôt, ni le joindre à un ticket public.

Les autres systèmes de compilation ont toujours besoin de votre propre compile_commands.json ou d'une compétence qui le génère, dit le billet. Pour CMake, le billet renvoie à la compétence de génération des commandes de compilation de la version précédente, appelée en demandant à Copilot CLI « load project ». Le guide ajoute que les projets CMake qui utilisent les générateurs Ninja ou Makefile peuvent créer le fichier en ajoutant -DCMAKE_EXPORT_COMPILE_COMMANDS=ON à la commande de configuration, et que les projets qui utilisent d'autres générateurs doivent d'abord vérifier s'il est possible de les configurer une fois avec Ninja ou Makefile. Pour les utilisateurs de MSBuild sans l'expérience, ou qui la désactivent, le guide renvoie à la compétence ou à une application d'exemple, et précise que l'exemple peut demander une adaptation pour les projets complexes. Pour les compilations personnalisées, le guide recommande d'enregistrer les étapes dans une compétence propre au projet afin que le processus soit reproductible, en partant de la compétence setup-cpp-language-server comme modèle.

Le README explique comment commencer. Il dit que le serveur de langage est en préversion et peut changer dans les versions futures, et qu'il apporte la même intelligence de code C++ que Visual Studio et VS Code à GitHub Copilot CLI sous Windows, macOS et Linux. Les prérequis sont un abonnement GitHub Copilot actif, une GitHub Copilot CLI prenant en charge les répertoires de session (testée avec la préversion 1.0.106-5) et npm. Le démarrage rapide compte six étapes : installer le plugin depuis Copilot CLI avec /plugin install cpp-language-server@copilot-plugins, qui intègre le serveur et le met à jour automatiquement ; exécuter npx @microsoft/cpp-language-server --accept-eula --login pour accepter les conditions de licence et se connecter à GitHub ; créer le fichier compile_commands.json ; lancer Copilot CLI depuis le répertoire du projet ; exécuter /lsp show, qui doit afficher un serveur « cpp » ; puis utiliser Copilot CLI comme d'habitude. Le README suggère d'ajouter des expressions comme « use LSP tools » à une invite pour inciter l'agent à utiliser ces outils.

Le tableau des fonctionnalités du dépôt montre à quelles requêtes le serveur répond. Prises en charge : survol, complétion, aide à la signature, aller à la définition, aller à la déclaration, aller à la définition de type, recherche de références, symboles du document, symboles de l'espace de travail, hiérarchie d'appels, plages de repli, diagnostics en mode pull et dossiers de l'espace de travail. Non prises en charge : renommage, actions de code, code lens, surlignage dans le document, ainsi que la mise en forme du document, d'une plage et pendant la saisie. La synchronisation des documents texte n'est pas prise en charge non plus. La note du tableau dit que l'agent d'IA est censé mettre à jour les fichiers sur le disque avant d'appeler des opérations LSP. Ce compte rendu lit ce tableau ainsi : le serveur ne renomme pas les symboles et ne voit pas les modifications qui ne sont pas encore sur le disque.

Sur les données et la portée, le README dit que le logiciel peut recueillir des informations sur vous et sur votre utilisation et les envoyer à Microsoft, et que la télémétrie peut être désactivée comme décrit dans le dépôt ; il renvoie à une page sur les options de ligne de commande que ce compte rendu n'a pas lue. Le billet indique qu'un abonnement GitHub Copilot actif est nécessaire. Les sources soutiennent une conclusion étroite. Le 10 novembre, GitHub a décrit une configuration MSBuild automatique pour le serveur de langage C++ dans Copilot CLI. Le guide du dépôt lui-même, modifié pour la dernière fois avant cette date, décrit la même fonction comme une expérience sous Windows, désactivée par défaut. Aucune source ne donne de mesure du temps de configuration ou de l'usage de jetons.

Sources

FAQ

Le serveur de langage C++ configure-t-il désormais automatiquement les projets MSBuild ?

Le billet de GitHub du 10 novembre dit que l'extracteur intégré s'exécute automatiquement à l'ouverture du projet. Le guide du dépôt, modifié pour la dernière fois le 21 octobre, décrit la configuration MSBuild automatique comme une expérience sous Windows, désactivée par défaut et activée pour vous via un indicateur de fonctionnalité. Les sources ne disent ni lequel est à jour, ni comment vérifier si elle est active pour vous.

Comment désactiver l'extraction MSBuild automatique ou changer son délai ?

Selon le guide du dépôt, modifiez sous Windows le fichier state.json propre à l'utilisateur en gardant ses autres propriétés. auto_generate_compile_commands_for_msbuild à false désactive l'extraction ; msbuild_extractor_timeout_seconds fixe un délai qui ne s'applique que si l'extraction est active. Redémarrez ensuite Copilot CLI. Le fichier peut contenir des données d'authentification : ne le commitez pas et ne le partagez pas.

Quelles fonctionnalités LSP le serveur ne prend-il pas en charge ?

Le tableau du dépôt indique comme non pris en charge le renommage, les actions de code, code lens, le surlignage dans le document et la mise en forme du document, d'une plage et pendant la saisie. La synchronisation des documents texte ne l'est pas non plus : le tableau indique que l'agent est censé mettre à jour les fichiers sur le disque avant d'appeler des opérations LSP. Survol, complétion, aller à la définition, recherche de références et hiérarchie d'appels sont pris en charge.