Si une tâche de projet dans VS Code échoue soudainement (formatage, linting, débogage ou navigation dans les fichiers), utilisez Extension Bisect pour identifier l'extension activée en cause. Sur Mac, ouvrez la palette de commandes avec ⇧⌘P, exécutez Help: Start Extension Bisect, puis répétez la même tâche après chaque modification. Si le problème persiste, choisissez This is bad ; s'il disparaît, choisissez Good now. VS Code teste des groupes d'extensions et affine la recherche en fonction de ces réponses. Guide d'Extension Bisect de VS Code

Reproduisez le même échec avant de tester

Notez d'abord la séquence la plus courte qui déclenche le problème de manière fiable : par exemple, ouvrir un fichier particulier, l'enregistrer et vérifier si le formatage s'exécute. Notez ce que vous attendiez et ce qui s'est réellement passé. Conservez le même projet, le même fichier et les mêmes étapes à chaque étape de la recherche dichotomique (bisect). Cela donne une base cohérente à chaque réponse ; si le symptôme est intermittent ou si vous modifiez la tâche, le résultat risque de ne pas identifier la cause de façon fiable.

Vérifiez si le comportement est limité à un seul espace de travail ou s'il se produit dans plusieurs. Une extension peut être désactivée globalement ou uniquement pour l'espace de travail actuel, de sorte qu'un échec spécifique à un projet peut être testé puis résolu au niveau de l'espace de travail. La vue Extensions est accessible avec ⇧⌘X. VS Code documente la gestion des extensions au niveau global et de l'espace de travail.

Exécutez Extension Bisect depuis la palette de commandes

Sur macOS, appuyez sur ⇧⌘P, saisissez Help: Start Extension Bisect, puis sélectionnez la commande. VS Code désactive des groupes d'extensions et vous invite à évaluer si le problème persiste. Effectuez les étapes de reproduction que vous avez notées avant de sélectionner This is bad ou Good now. Bisect utilise ces réponses pour sélectionner le groupe suivant ; continuez à répondre en vous basant sur le même symptôme jusqu'à ce que VS Code identifie une extension ou termine sans en trouver. Le guide officiel explique le processus groupe par groupe.

Lorsque de nombreuses extensions sont activées, réduire la recherche de moitié à chaque étape peut nécessiter beaucoup moins de vérifications que de les désactiver une par une. Le processus repose sur des retours précis : signaler « Good now » alors que le problème persiste, ou « This is bad » alors qu'il a disparu, peut fausser la recherche. Le guide de bisect note également que le processus commence par vérifier si le problème persiste lorsque les extensions sont désactivées, car la cause peut provenir de VS Code lui-même.

Confirmez le résultat avant de modifier votre configuration

Lorsque VS Code identifie un candidat, répétez la tâche initiale avec cette extension activée, puis désactivée. Dans la vue Extensions, trouvez l'extension, sélectionnez son menu en forme d'engrenage et choisissez l'option de désactivation appropriée. VS Code peut vous demander de redémarrer l'hôte d'extension ; acceptez cette invite, puis reproduisez le problème. Réactivez l'extension et vérifiez à nouveau. Si le symptôme réapparaît systématiquement lorsqu'elle est activée et disparaît lorsqu'elle est désactivée, vous disposez d'une preuve plus solide de l'implication de l'extension. La désactivation est réversible ; il n'est pas nécessaire de la désinstaller pour poser un diagnostic. VS Code documente la désactivation et l'activation des extensions.

Une extension peut être impliquée sans être la seule cause. Ses paramètres, ses dépendances ou son interaction avec une autre extension peuvent entrer en jeu. Consultez sa fiche sur le Marketplace et son README pour prendre connaissance des paramètres apportés et des dépendances, puis vérifiez si une mise à jour récente ou une modification de configuration coïncide avec le moment où le flux de travail a changé. Si vous devez conserver l'extension installée, désactivez-la uniquement pour l'espace de travail concerné dans la mesure du possible ; sinon, laissez-la activée et signalez à son éditeur les étapes pour reproduire le problème ainsi que l'identifiant de l'extension.

Si bisect ne trouve aucune extension

Essayez une comparaison avec un environnement propre. Les profils VS Code permettent d'isoler les extensions et les paramètres : créez un Empty Profile depuis l'éditeur de profils, ouvrez le projet concerné avec celui-ci et répétez la tâche. Un Empty Profile désactive les extensions et les paramètres modifiés ; ainsi, si l'échec persiste, la cause peut être le cœur de VS Code, les outils du projet ou un autre élément de l'environnement. S'il disparaît, des extensions ou des paramètres personnalisés sont en cause, mais le profil vide à lui seul ne permet pas d'identifier l'élément précis. Documentation sur les profils VS Code.

Vous pouvez également lancer une fenêtre de diagnostic depuis le Terminal avec code --disable-extensions . pendant que le terminal se trouve dans le répertoire du projet. Sur Mac, le shell par défaut de Terminal est zsh ; la commande ne contient aucun métacaractère de shell nécessitant des guillemets particuliers. Cela désactive les extensions pour ce lancement spécifique, ce qui en fait un moyen pratique pour une comparaison rapide. Cela n'identifie pas une extension en particulier ; utilisez Bisect ou la désactivation au niveau de l'espace de travail pour cela. La commande code doit être accessible dans le PATH de votre shell. VS Code documente cette option de lancement ; Apple documente le shell par défaut de Terminal.

Lorsque le projet se comporte de la même manière avec les extensions désactivées, vérifiez les propres scripts et outils du projet, les paramètres de VS Code, et regardez si le problème se produit également dans un autre éditeur ou environnement. Considérez ces éléments comme de nouvelles pistes de diagnostic plutôt que comme la preuve qu'un composant spécifique est responsable.

Sources