Aller au contenu

Nouveau membre ?! Pense à te présenter pour accéder au contenu du forum !

New member ?! Introduce yourself to get access to the forum !

Cassegrain

 tutoriel / partage Code Formatter: Artistic Style

Messages recommandés

Bonjour,

 

C'est plutôt un partage de connaissances que je vous propose aujourd'hui en vous présentant un outil pour améliorer la lisibilité du code.

 

 

Cet outil c'est Artistic Style.

Un formatter / beautifier de code dont je n'ai trouvé aucun équivalent.

 

Le code source est disponible ici: http://astyle.sourceforge.net/

 

La documentation ici: http://astyle.sourceforge.net/astyle.html

 

 

 

Utilisation:

 

Vous pouvez l'utiliser sur différents supports, Freebsd, Windows, ou même Linux.

Un package déjà compilé est disponible en plus de la source complète que vous pourrez compiler par vous même après l'avoir adapté à vos besoins si vous le souhaitez.

 

 

 

 - 1: Windows: il faudra se servir d'un fichier batch pour lancer l'exécution.

 

exemple.bat:

 

AStyle.exe --style=allman test.cpp test.h
pause

 

 

Cette ligne de commande mettra les fichiers test.cpp et test.h du répertoire courant à la norme allman.

La deuxième ligne "pause" permet de laisser la fenêtre de commande ouverte une fois l'exécution terminée.

 

 

 - 2: Freebsd / Linux: Il faudra se servir d'un fichier shell.

 

exemple.sh:

#!/bin/sh
astyle --style=allman test.cpp test.h

 

Cette commande donnera le même résultat que celle pour windows.

La première ligne est un shebang, qui permet au système de savoir avec quel exécutable le script doit s'exécuter.

 

 

Les arguements:

 

Comme vous pouvez le voir sur la documentation, il existe beaucoup d'arguments qui ont chacun leur spécificités.

Changer le type d'indentation, changer la position des accolades, aligner les définitions de variables ou de fonctions et d'autres.

 

Mais le mieux pour ça, c'est d'essayer par vous même pour que vous trouviez la combinaison qui vous correspond afin d'éclaircir votre code et d'optimiser votre travail.

 

 

Je vais jsute faire un petit point sur la récursivité que propose le logiciel sur le traitement des fichiers, qui permet de modifier un dossier complet, par type de fichier.

 

Exemple.bat:

AStyle.exe --style=allman --recursive E:\work\src\*.cpp
AStyle.exe --style=java --recursive E:\work\include\*.h
pause

 

Exemple.sh:

#!/bin/sh
astyle --style=allman --recursive '/work/src/*.cpp'
astyle --style=java --recursive '/work/include/*.h'

 

 

Ces lignes de commandes permettent de:

  1. Mettre tous les fichiers .cpp à la norme allman dans les chemins indiqués.
  2. Mettre tous les fichiers .h à la norme java dans les chemins indiqués.

 

 

Recommandations:

Pour les codes source C / C++ voici les arguments que je recommande:

--style=allman --indent=force-tab --indent-namespaces --indent-switches --indent-modifiers --indent-classes --indent-preproc-block --pad-oper --remove-brackets --break-after-logical

 

Pour les fichiers headers (moins de saut de ligne et meilleur lisibilité pour les fonctions sans déclaration):

--style=java --indent=force-tab --indent-namespaces --indent-switches --indent-modifiers --indent-classes --indent-preproc-block --pad-oper --remove-brackets --break-after-logical

 

Attention, lorsqu'un fichier est modifié par le logiciel, une copie avant modification est créée et l'extension '.orig' (par défaut) y est ajoutée.

Pour éviter de devoir tout trier sur un gros projet, il est préférable de faire une sauvegarde au préalable et d'ajouter l'argument suivant qui désactivera la sauvegarde faite par le logiciel:

--suffix=none

 

 

N'oubliez pas que la documentation est toujours très utile et qu'il y a beaucoup de fonctionnalités utiles à exploiter !

Bon code !

Partager ce message


Lien à poster
Partager sur d’autres sites

merssi mek jvai men servir de se pa ^^

 

encor merci big up

Partager ce message


Lien à poster
Partager sur d’autres sites

Quiron, j'ai dis attention, pas de langage SMS   !

 

Merci pour le partage intéressant Casse grain  :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonsoir,

 

Partage accepté !

 

Merci de ton investissement !

 

Je déplace,

Partager ce message


Lien à poster
Partager sur d’autres sites

×

Information importante

By using this site, you agree to our Conditions d’utilisation.