Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
À compter de la version 17.8 Preview 1, Visual Studio peut nettoyer vos #includes pour améliorer la qualité de votre code C et C++ de la manière suivante :
- Offre d’ajouter des fichiers d’en-tête pour le code qui se compile uniquement, car un fichier d’en-tête nécessaire est inclus indirectement par un autre fichier d’en-tête.
- Propose de supprimer les fichiers d’en-tête inutilisés, ce qui améliore les temps de génération.
Cet article explique comment configurer Include Cleanup dans Visual Studio. Pour plus d’informations sur Include Cleanup, consultez la vue d’ensemble de Include Cleanup pour C/C++.
Activer Include Cleanup
La fonctionnalité Include Cleanup est activée par défaut. Si elle n’est pas active, vous pouvez l’activer via Outils>Options>Éditeur de texte>C/C++>Nettoyage du code, puis sélectionner Activer #include-cleanup.
Utilisez ensuite les listes déroulantes pour configurer la façon dont vous souhaitez être informé des opportunités d’ajout d’en-têtes indirects ou de suppression d’en-têtes inutilisés :
La case Enable # include clean up est cochée. Les listes déroulantes pour Supprimer les éléments inutilisés inclut le niveau de suggestion et Ajouter un élément manquant inclut le niveau de suggestion, sont affichées. Le contenu de la liste déroulante s’affiche : **Refactorisation uniquement**, **Suggestion**, **Avertissement** et **Erreur**. La liste déroulante **Supprimer les éléments inutilisés inclut le niveau de suggestion** offre les mêmes options, mais ajoute également grisé.
Les significations des options de niveau de suggestion sont les suivantes :
Refactorisation uniquement : inclut les actions d’offre de nettoyage que vous pouvez effectuer via le menu d’action rapide lorsque vous placez le pointeur de la souris sur un #include, ou placez le curseur sur la ligne #include et appuyez sur Ctrl+point :
Lorsque vous pointez le curseur sur # include iostream, une ampoule s’affiche avec le texte # include iostream n’est pas utilisé dans ce fichier. »
Suggestion, Avertissement, Erreur : inclut les actions d’offre de nettoyage qu’il peut effectuer via des suggestions, des avertissements ou des erreurs dans la fenêtre Liste d’erreurs. Vous déterminez lesquelles. Dans la capture d’écran suivante de la Liste d’erreurs, Include Cleanup est configuré pour afficher les en-têtes inutilisés avec un avertissement. Vérifiez que Build + Intellisense est sélectionné dans le filtre de liste déroulante afin de voir la sortie Include Cleanup :
Le filtre de liste déroulante est défini sur Build + IntelliSense. Un avertissement est visible : VCIC002 - #include < iostream > n’est pas utilisé dans ce fichier. »
Grisé
Include Cleanup affiche les en-têtes inutilisés en grisant la ligne du fichier d’en-tête inutilisé dans l’éditeur de code. Placez le curseur sur le #include grisé pour afficher le menu d’action rapide et choisissez Afficher les correctifs potentiels, ou cliquez sur la liste déroulante de l’ampoule pour afficher les actions liées au fichier inutilisé.
La ligne de #include < iostream > est grisée, car la ligne de code qui utilise iostream est commentée. Cette ligne de code est // std::cout << "charSize = " << charSize ; Le menu d’action rapide est également visible pour cette ligne. Il indique #include < iostream > n’est pas utilisé dans ce fichier. Il comprend un lien pour afficher les correctifs potentiels.
Configurer Include Cleanup avec .editorconfig
Il existe d’autres options pour configurer Include Cleanup, telles que l’exclusion d’includes spécifiés à partir des suggestions de nettoyage, ce qui indique que certains fichiers d’en-tête sont requis afin que l’outil ne les marque pas comme inutilisés, etc. Ces options sont définies dans un fichier .editorconfig, que vous pouvez ajouter à votre projet pour, entre autres, appliquer des styles de codage cohérents pour tous ceux qui travaillent dans le codebase. Pour plus d’informations sur l’ajout d’un fichier .editorconfig à votre projet, consultez Créer des paramètres d’éditeur portables et personnalisés avec EditorConfig.
Les paramètres .editorconfig que vous pouvez utiliser avec Include Cleanup sont les suivants :
| Paramètre | Valeurs | Exemple |
|---|---|---|
cpp_include_cleanup_add_missing_error_tag_typeDéfinit le niveau d’erreur d’ajout de messages include transitifs. |
nonesuggestionwarningerror |
cpp_include_cleanup_add_missing_error_tag_type = suggestion |
cpp_include_cleanup_remove_unused_error_tag_typeDéfinit le niveau d’erreur de suppression des messages include inutilisés. |
nonesuggestionwarningerrordimmed |
cpp_include_cleanup_remove_unused_error_tag_type = dimmed |
cpp_include_cleanup_excluded_filesExclut les fichiers spécifiés des messages Include Cleanup. Vous n’obtiendrez aucune suggestion liée à l’en-tête, qu’il s’agisse de l’ajouter ou qu’il ne soit pas utilisé. |
nom_fichier | cpp_include_cleanup_excluded_files = vcruntime.h, vcruntime_string.h |
cpp_include_cleanup_required_filesSpécifiez que l’utilisation de file1 nécessite file2. Par exemple, spécifiez que si vous utilisez atlwin.h, altbase.h doit également être inclus. |
file1 :file2 | cpp_include_cleanup_required_files = atlwin.h:altbase.h, atlcom.h:altbase.h |
cpp_include_cleanup_replacement_filesRemplace fichier1 par fichier2 pendant le traitement Include Cleanup. Par exemple, vous pouvez préférer utiliser cstdio plutôt que stdio.h. Si vous avez un fichier avec #include <cstdio> et #include <stdio.h>, et que vous consommez du contenu uniquement à partir de stdio.h, avec ce paramètre Include Cleanup vous indique de supprimer stdio.h, car il a remplacé l’utilisation de cstdio par stdio.h pendant le traitement. Si vous n’utilisez le contenu d’aucun des deux, Include Cleanup vous indique de supprimer les deux. |
file1 :file2 | cpp_include_cleanup_replacement_files = stdio.h:cstdio,stdint.h:cstdint |
cpp_include_cleanup_alternate_filesNe générez pas de message pour le fichier include indirectfile2 si file1 est inclus. Par exemple, si vous #include <windows.h> et utilisez uniquement un élément de son en-tête winerror.h inclus indirectement, Include Cleanup n’invite pas à ajouter winerror.h. Utile lorsque vous préférez inclure un fichier d’en-tête de façade au lieu des éléments indirects qu’il contient. |
file1 :file2 | cpp_include_cleanup_alternate_files = windows.h:winerror.h, windows.h:minwindef.h |
Voir aussi
Vue d’ensemble d’Include Cleanup pour C/C++
Messages Include Cleanup