Meilleur formateur / embellisseur de code C ++

127

Il existe de nombreux outils de formatage de code source. Quels sont ceux qui fonctionnent le mieux pour C ++?

Je suis intéressé par les outils de ligne de commande ou d'autres choses qui peuvent être exécutées automatiquement lors de l'enregistrement / de la sortie de code, de préférence sans avoir besoin de lancer un éditeur ou un IDE.

(Si la réponse que vous aimez est déjà répertoriée comme une réponse, votez-la. Si elle n'y figure pas, ajoutez-la.)

Kristopher Johnson
la source

Réponses:

120

AStyle peut être personnalisé en détail pour C ++ et Java (et d'autres aussi)

Il s'agit d'un outil de formatage de code source.


clang-format est un puissant outil de ligne de commande fourni avec le compilateur clang qui gère même les constructions de langage les plus obscures de manière cohérente.

Il peut être intégré à Visual Studio, Emacs, Vim (et autres) et peut formater uniquement les lignes sélectionnées (ou avec git / svn pour formater certains diff).

Il peut être configuré avec une variété d'options répertoriées ici .

Lors de l'utilisation de fichiers de configuration (nommés .clang-format ), les styles peuvent être par répertoire - le fichier de ce type le plus proche dans les répertoires parents doit être utilisé pour un fichier particulier.

Les styles peuvent être hérités d'un préréglage (disons LLVM ou Google) et peuvent plus tard remplacer différentes options

Il est utilisé par Google et d'autres et est prêt pour la production.


Regardez également le projet UniversalIndentGUI . Vous pouvez expérimenter plusieurs indenteurs en l'utilisant: AStyle, Uncrustify, GreatCode, ... et sélectionnez le meilleur pour vous. N'importe lequel d'entre eux peut être exécuté plus tard à partir d'une ligne de commande.


Uncrustify a beaucoup d'options configurables. Vous aurez probablement besoin de l'interface graphique Universal Indent (dans la réponse de Konstantin) pour le configurer.

Bill the Lizard
la source
1
Nous avons des fichiers source désordonnés pleins de macros compliquées, ce qui rend difficile de comprendre comment modifier le code ou définir des points d'arrêt. Nous l'avons dé-macro avec gcc -E, ce qui a entraîné de très longues lignes de boucles for imbriquées, d'instructions if, etc. Astyle a corrigé cela pour qu'il soit lisible, ce qui nous a épargné beaucoup de problèmes. Astyle a une place permanente sur mon étagère à outils logiciels!
DarenW
8
Astuce Vim: si vous voulez embellir le code dans un fichier que vous êtes en train de modifier, utilisez:%! Astyle
tonylo
C'est un excellent outil. Je lance astyle à chaque fois que je dois travailler sur le même projet avec MSVStudio sur Windows (au travail) et emacs sur Linux (à la maison). J'utilise le style BSD avec emacs et astyle (qui est proche du style que j'utilise avec l'éditeur MSVC), et j'ai toujours un code source correctement indenté. Il est même beau indépendamment de la taille de l'onglet!
Alexandre C.
1
Essayé. Il est très facile d'obtenir un résultat rapide (la doc est bonne). C'est dommage qu'il n'y ait pas autant d'options cependant! Certains programmeurs sont très créatifs dans la façon dont ils remplissent leur code d'espaces, et AStyle ne gère pas toute cette créativité.
fury
Il n'y a pas d'option de largeur de ligne maximale. Cela devrait être un incontournable.
Sogartar