biblissima / collatinus

Sources of Collatinus software - Latin lemmatizer, morphological analyzer and scansion
http://outils.biblissima.fr/en/collatinus
GNU General Public License v3.0
66 stars 15 forks source link

homogéinisation de l'indentation (et du style en général) #16

Closed eroux closed 8 years ago

eroux commented 8 years ago

Ce serait assez pratique de se mettre d'accord sur un style et de pouvoir formatter le code automatiquement. Dans le style actuel il y a un mélange de tabs et de blocs de 4 espaces. Je propose de passer tout le code à clang-format en lui disant d'indenter avec 4 espaces, qu'en pensez-vous ?

eroux commented 8 years ago

Voilà ce que donne lewis.cpp après un passage par clang-format : lewis.cpp

ycollatin commented 8 years ago
Bonjour Philippe, bonjour Élie,

Le 28 avril 2016, à 03h28, Elie Roux écrivit :

Ce serait assez pratique de se mettre d'accord sur un style et de pouvoir formatter le code automatiquement. Dans le style actuel il y a un mélange de tabs et de blocs de 4 espaces. Je propose de passer tout le code à clang-format en lui disant d'indenter avec 4 espaces, qu'en pensez-vous ?

Mon avis : pour l'indentation, càd tout ce qui est à

gauche du premier caractère, uniquement des tabs ; pour le reste, uniquement des espaces. D'accord pour dire qu'il faut éviter le mélange de tabs et d'espaces.

- les tabs parce que ça laisse le choix au lecteur de la
  largeur d'indentation qui lui convient le mieux.
  Personnellement, j'ai réglé Vim pour un tab = 4
  espaces, mais je m'aperçois que beaucoup de gens ont
  des tabs jusqu'à 8 espaces !
- les espaces ensuite : j'aime bien aligner les membres
  des expressions dans les instructions répétitives, ce
  qui permet de repérer beaucoup plus vite les noms des
  variables, et leurs valeurs.

Cette page : http://suckless.org/coding_style me plaît

bien, mais elle est quand même très loin dans ses exigences.

L'indentation automatique de Vim marche plutôt bien,

mais je suis obligé de lancer une regExp pour supprimer les espaces de fin.

                    Yves
eroux commented 8 years ago

Pour tabs vs. espaces, le moins qu'on puisse dire c'est qu'on peut trouver des défenseurs des deux. Les espaces ont plutôt plus la cote en ce moment, par exemple Python et PHP ont normalisé ça (les indentations avec 4 espaces sont obligatoires pour respecter certaines normes). Personnellement je préfère les espaces, mais j'utilise editorconfig pour pouvoir passer d'un projet à l'autre sans avoir à modifier les préférences de mon éditeur de texte... pour mon boulot je dois utiliser 3 espaces par exemple... Bref, je crée une branche indentation avec un .editorconfig et un .clangformat qui utilisent des tab

ycollatin commented 8 years ago

Le 29 avril 2016, à 00h04, Elie Roux écrivit :

Pour tabs vs. espaces, le moins qu'on puisse dire c'est qu'on peut trouver des défenseurs des deux. Les espaces ont plutôt plus la cote en ce moment, par exemple Python et PHP ont normalisé ça (les indentations avec 4 espaces sont obligatoires pour respecter certaines normes). Personnellement je préfère les espaces, mais j'utilise editorconfig pour pouvoir passer d'un projet à l'autre sans avoir à modifier les préférences de mon éditeur de texte... pour mon boulot je dois utiliser 3 espaces par exemple... Bref, je crée une branche indentation avec un .editorconfig et un .clangformat qui utilisent des tab

Personnellement, ça ne me gêne pas d'avoir des espaces

partout. Ça évite au moins d'avoir un code défiguré dès qu'une espace se glisse au milieu des tabs. Il me suffit de régler mon éditeur et de tout passer en indentation auto. Je vois qu'il y a un EditorConfig pour vim, mais la doc de Vim est suffisamment bien faite. Comme Collatinus est mon seul projet, un seul réglage me suffit. Je suppose que

QtCreator, qu'utilise Philippe, permet de régler ça aussi.

                    Yves
eroux commented 8 years ago

Euh... du coup finalement on met des espaces ? combien par niveau d'indentation ?

ycollatin commented 8 years ago

Le 29 avril 2016, à 00h31, Elie Roux écrivit :

Euh... du coup finalement on met des espaces ? combien par niveau d'indentation ?

Apparemment des espaces, 4 par niveau d'indentation,

mais mieux vaut attendre l'avis de Philippe. Qt permet de

régler finement le style de codage.

                    Yves
eroux commented 8 years ago

Selon http://doc.qt.io/qtcreator/creator-beautifier.html, la façon canonique de formater dans Qt creator est à l'aide d'plugin qui peut utiliser clang-format (utilisé par llvm et google, ce n'est pas rien !), je pense que c'est la meilleure option... mais attendons la réponse de Philippe oui. Par contre tout reformater va impliquer tellement de changements qu'il vaut mieux merger toutes les branches, puis tout reformater, puis refaire des branches neuves (si besoin)... Je ne sais pas trop comment gérer ça sur la branche syntaxe par exemple... on peut soit la merger tout de suite, quitte à avoir un état de la syntaxe un peu instable dans master (ce qui ne me semble pas vraiment être un problème), soit tout reformater aussi dans la branche syntaxe, mais ça va faire du boulot de merge à la main...

Merci,

Elie

ycollatin commented 8 years ago

Le 29 avril 2016, à 01h01, Elie Roux écrivit :

Je ne sais pas trop comment gérer ça sur la branche syntaxe par exemple... on peut soit la merger tout de suite, quitte à avoir un état de la syntaxe un peu instable dans master (ce qui ne me semble pas vraiment être un problème), soit tout reformater aussi dans la branche syntaxe, mais ça va faire du boulot de merge à la main...

D'accord pour merger syntaxe dans master. Il y aura

peut-être du manuel à faire sur le lemmatiseur, mais pas grand chose, et de mon côté, je serai plus sûr de ce que je fais. Il faudra, je suppose, recréer une branche syntaxe

non ?

                    Yves
eroux commented 8 years ago

D'accord pour merger syntaxe dans master.

Ok, je vous laisse faire, il y aura sûrement des conflits à résoudre à la main, seul vous le pouvez...

Il faudra, je suppose, recréer une branche syntaxe non ?

Ça me paraît sage oui. J'en profite pour merger la pull request aussi, ce sera fait...

Merci,

Elie

eroux commented 8 years ago

P.S. : la manière canonique est de d'abord merger mater dans syntaxe, résoudre les conflits, en esuite merger syntaxe dans master, c'est plus sûr comme ça...

PhVerkerk commented 8 years ago

J'ai l'impression que QtCreator (que j'utilise) fait par défaut des indentations de 4 espaces.

Le 29/04/2016 09:50, Yves Ouvrard a écrit :

Le 29 avril 2016, à 00h31, Elie Roux écrivit :

Euh... du coup finalement on met des espaces ? combien par niveau d'indentation ?

Apparemment des espaces, 4 par niveau d'indentation, mais mieux vaut attendre l'avis de Philippe. Qt permet de

régler finement le style de codage.

Yves

— You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub https://github.com/biblissima/collatinus/issues/16#issuecomment-215651594

eroux commented 8 years ago

Ok, utilisons donc 4 espaces par niveau d'indentation. Philippe est-ce que ça vous va si je merge fix-7 dans master avant de tout reformatter ? ça simplifiera les choses...

PhVerkerk commented 8 years ago

Je ne fais rien aujourd'hui. Vous avez la main pour faire tous les merge que vous pouvez souhaiter faire (y compris l'accentuation actuelle, qui marche chez moi ; vérifiez quand même !).

Le 29/04/2016 10:45, Elie Roux a écrit :

P.S. : la manière canonique est de d'abord merger mater dans syntaxe, résoudre les conflits, en esuite merger syntaxe dans master, c'est plus sûr comme ça...

— You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub https://github.com/biblissima/collatinus/issues/16#issuecomment-215660640

ycollatin commented 8 years ago

Le 29 avril 2016, à 01h42, Elie Roux écrivit :

D'accord pour merger syntaxe dans master.

Ok, je vous laisse faire, il y aura sûrement des conflits à résoudre à la main, seul vous le pouvez...

D'accord j' m'y mets cet après-midi.

                    Yves
ycollatin commented 8 years ago

Le 29 avril 2016, à 01h51, PhVerkerk écrivit :

Je ne fais rien aujourd'hui. Vous avez la main pour faire tous les merge que vous pouvez souhaiter faire (y compris l'accentuation actuelle, qui marche chez moi ; vérifiez quand même !).

D'accord. Je pense que cet après-midi tout sera bon pour

mes deux merge.

                    Yves
eroux commented 8 years ago

Une autre question : il y a parfois un espace avant les parenthèses dans un appel de fonction, parfois non... j'ai tendane à préférer quand il n'y en a pas, mais que préférez-vous ?

ycollatin commented 8 years ago

Le 29 avril 2016, à 03h04, Elie Roux écrivit :

Une autre question : il y a parfois un espace avant les parenthèses dans un appel de fonction, parfois non... j'ai tendane à préférer quand il n'y en a pas, mais que préférez-vous ?

J'ai changé d'avis il y a peu : pas d'espace.

                    Yves
PhVerkerk commented 8 years ago

Pour moi, tout va bien. J'aurais plutôt tendance à ne pas en mettre. En revanche, dans les paramètres quand il y en a plusieurs, j'aime bien la convention typographique usuelle qui demande un espace après la virgule. Mais ce n'est pas une obligation, je m'adapterai.

Le 29/04/2016 12:08, Yves Ouvrard a écrit :

Le 29 avril 2016, à 03h04, Elie Roux écrivit :

Une autre question : il y a parfois un espace avant les parenthèses dans un appel de fonction, parfois non... j'ai tendane à préférer quand il n'y en a pas, mais que préférez-vous ?

J'ai changé d'avis il y a peu : pas d'espace.

Yves

— You are receiving this because you commented. Reply to this email directly or view it on GitHub https://github.com/biblissima/collatinus/issues/16#issuecomment-215676103

ycollatin commented 8 years ago

Le 29 avril 2016, à 03h16, PhVerkerk écrivit :

Pour moi, tout va bien. J'aurais plutôt tendance à ne pas en mettre. En revanche, dans les paramètres quand il y en a plusieurs, j'aime bien la convention typographique usuelle qui demande un espace après la virgule. Mais ce n'est pas une obligation, je m'adapterai.

C'est ce que je fais aussi, mais dans les déclarations

de boucle for et while, je supprime tous les espaces avant et après les points-virgules :

for(int i=0;i<max;++i)

                    Yves