6 votes

Reformater les accolades C++ sans modifier l'indentation?

Nous aimerions rendre notre style de parenthèses en C++ plus cohérent. En ce moment, notre code contient un mélange de :

if (cond)
{
    // ...    
}
else
{
    // ...
}

... et :

if (cond) {
    // ...
} else {
    // ...
}

Nous voulons utiliser exclusivement ce dernier style.

Cependant, nous ne voulons pas changer l'indentation de notre code. J'ai essayé d'utiliser astyle, bcpp, GNU indent et Uncrustify (et j'ai examiné les options en ligne de commande pour GreatCode). Malheureusement, chacun de ces outils insiste pour ré-indenter notre code, et la plupart d'entre eux déforment assez mal les listes d'initialisation des constructeurs C++ et les macros du préprocesseur.

Existe-t-il des embellisseurs de code C++ qui peuvent corriger les accolades tout en laissant l'indentation telle quelle ? Ce n'a pas besoin d'être un outil préexistant - si vous savez comment le faire en utilisant une ligne de commande Perl un peu folle, c'est aussi bien. Merci !

Mise à jour : Oui, nous sommes conscients que cela rendra difficile la lecture des différences par rapport au code plus ancien. Il s'agit d'un nettoyage de code reporté depuis longtemps, et nous avons décidé que les avantages quotidiens d'un formatage cohérent l'emportent sur les difficultés de contrôle de version.

0voto

Brian Neal Points 13668

J'ai déjà résolu des problèmes comme celui-ci par le passé en commençant par exécuter un outil tel que astyle pour faire 95% de ce que nous voulions, puis en écrivant un script Perl ou Python sur le résultat pour terminer les 5% restants. Essayez, c'est toujours bon de savoir utiliser vos expressions régulières. :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X