Aller au contenu
Top-Metin2.org - Vous êtes à la recherche d'un serveur Metin 2 ? ×
×
×
  • Créer...

Code Formatter: Artistic Style


Cassegrain

Messages recommandés

Centre de Téléchargement

Hidden Content

    Give reaction to this post to see the hidden content.
( Interne )

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 !

  • Metin2 Dev 3
Lien vers le commentaire
Partager sur d’autres sites

  • Réponses 3
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet



  • brilliantdiscord_widget
  • Flux d'Activité

    1. 37
    2. 21

      Metin2 en 2020 peut-on en parler?

    3. 0

      METIN2Project

    4. 3

      Ressources - UnPack - Metin2 Client - Officiel

    5. 0

      Barre des tâches d'argent étendue

    6. 16

      Redémarrage automatique des channels

    7. 16

      Multi Logo GM / SGM / GA

  • En ligne récemment

    • Aucun utilisateur enregistré regarde cette page.

Information importante

Conditions d’utilisation / Politique de confidentialité / Règles / Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.