IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Outil gratuit pour vérifier le style de notre code C++


Sujet :

C++

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 108
    Points : 143
    Points
    143
    Par défaut Outil gratuit pour vérifier le style de notre code C++
    Bonjour,

    Je cherche un outil gratuit qui vérifie le style de notre code C++ qu'on peut intégrer dans gitlab-ci.

  2. #2
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2011
    Messages : 739
    Points : 3 627
    Points
    3 627
    Par défaut
    clang-format est très complet

  3. #3
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Ca dépend de ce que tu entends par style :
    • S'il s'agit d'homogénéiser espaces, retours à la ligne, alignement du texte... clang-format est plus ou moins le standard de fait
    • S'il s'agit de valider le respect de règles de codage (quand mettre un constructeur de copie, ai-je mis std::move au lieu de std::forward, ai-je oublié de mettre un destructeur virtuel...), il faut des outils qui comprennent mieux le code.
      • clang-tidy peut fgaire ça, mais l'interface est purement ligne de comande
      • Si votre code est open-source, vous pouvez utiliser sonarcloud.io (sinon, il faut payer) (disclaimer : Je bosse pour ce produit).
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  4. #4
    Expert éminent
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 565
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 565
    Points : 7 648
    Points
    7 648
    Par défaut
    Bonjour,

    Si tu es sous Windows, avec Visual studio Community tu as de facto un certains nombre d'outils:
    - mise en forme du code : edit / advanced / format document.
    - analyse de règles minimales et conseils minimaux: analyze / run code analyse / on solution, et : analyze / calculate code metrics / on solution. Configuré par : tools / options / performances tools / rules.
    - analyse de performance : debug / performance profiler / ...
    - analyse de l'utilisation de la mémoire activé par : tools / options / debugging / enable diagnostics tools while debugging.

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 108
    Points : 143
    Points
    143
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    Ca dépend de ce que tu entends par style :
    • S'il s'agit d'homogénéiser espaces, retours à la ligne, alignement du texte... clang-format est plus ou moins le standard de fait
    • S'il s'agit de valider le respect de règles de codage (quand mettre un constructeur de copie, ai-je mis std::move au lieu de std::forward, ai-je oublié de mettre un destructeur virtuel...), il faut des outils qui comprennent mieux le code.
      • clang-tidy peut fgaire ça, mais l'interface est purement ligne de comande
      • Si votre code est open-source, vous pouvez utiliser sonarcloud.io (sinon, il faut payer) (disclaimer : Je bosse pour ce produit).
    Il s'agit d'homogénéiser espaces, retours à la ligne, alignement du texte...
    On souhaiterez l'ajouter dans une intégration continu, malheureusement je ne trouve pas de documentation sur clang-format.

    L'environnement est linux (intégration continue gitlab).

  6. #6
    Membre actif Avatar de Suryavarman
    Homme Profil pro
    Développeur 3D
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur 3D
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Points : 245
    Points
    245
    Par défaut
    Peut être ceci: (désolé j'utilise jenkins comme daimon et non gitlab, je ne pourrais pas aider plus)
    https://clang.llvm.org/docs/ClangFormat.html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    git diff -U0 --no-color HEAD^ | clang-format-diff.py -i -p1
    Sur linux tu as le paquet :
    git-clang-format

    https://pkgs.org/download/git-clang-format

    Ce paquet t'installe l'application git-clang-format:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    $ git-clang-format --help
    usage: git clang-format [OPTIONS] [<commit>] [<commit>] [--] [<file>...]
     
    If zero or one commits are given, run clang-format on all lines that differ
    between the working directory and <commit>, which defaults to HEAD.  Changes are
    only applied to the working directory.
     
    If two commits are given (requires --diff), run clang-format on all lines in the
    second <commit> that differ from the first <commit>.
     
    The following git-config settings set the default of the corresponding option:
      clangFormat.binary
      clangFormat.commit
      clangFormat.extensions
      clangFormat.style
     
    positional arguments:
      <commit>              revision from which to compute the diff
      <file>...             if specified, only consider differences in these files
     
    optional arguments:
      -h, --help            show this help message and exit
      --binary BINARY       path to clang-format
      --commit COMMIT       default commit to use if none is specified
      --diff                print a diff instead of applying the changes
      --extensions EXTENSIONS
                            comma-separated list of file extensions to format, excluding the period and case-insensitive
      -f, --force           allow changes to unstaged files
      -p, --patch           select hunks interactively
      -q, --quiet           print less information
      --style STYLE         passed to clang-format
      -v, --verbose         print extra information
    Je ne sais pas si ça t'aidera mais ça ressemble à ce que tu souhaites.
    "Quand le monde est dangereux, l'humilité est un facteur de longévité." ( Baxter "Evolution" )

  7. #7
    Membre chevronné Avatar de Astraya
    Homme Profil pro
    Consommateur de café
    Inscrit en
    Mai 2007
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Consommateur de café
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2007
    Messages : 1 043
    Points : 2 234
    Points
    2 234
    Par défaut
    Hello,

    Depuis clang-format 10 tu as l'option --dry-run.
    Dans ton script gitlab-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    script:
       - clang-format --dry-run -Werror
       - Exit $LASTEXITCODE # ou if($LASTEXITCODE) { Exit $LASTEXITCODE } si tu veux faire autre chose après en cas de succès.
    Citation Envoyé par JolyLoic Voir le message
    Ca dépend de ce que tu entends par style :

      • Si votre code est open-source, vous pouvez utiliser sonarcloud.io (sinon, il faut payer) (disclaimer : Je bosse pour ce produit).

    Je comprends que tu vends ta paroisse
    Au boulot nous utilisons un module communautaire gratuit pour le C++; Sans doute moins complet que le payant cependant... mais ça existe gratuit
    Homer J. Simpson


Discussions similaires

  1. [Etude] Outils gratuits pour le développement de jeux vidéo
    Par Heliopraetor dans le forum Développement 2D, 3D et Jeux
    Réponses: 24
    Dernier message: 05/06/2007, 10h14
  2. outils gratuit pour le developpement en php
    Par developper2006 dans le forum EDI/Outils
    Réponses: 4
    Dernier message: 06/05/2007, 16h50
  3. Quel outil gratuit pour l'UML ?
    Par mchk0123 dans le forum Outils
    Réponses: 4
    Dernier message: 10/04/2007, 13h42
  4. Outil gratuit pour Modele E-A ???
    Par Elyes_lami dans le forum Outils
    Réponses: 1
    Dernier message: 27/03/2006, 20h30
  5. outil gratuit pour agorithmes et morphogrammes
    Par zazaraignée dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 11/10/2004, 15h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo