C'est le style ! :)

 

Préhistoire : Au cours de nombreuses années de codage, j'ai développé un style "personnel" de formatage du texte(ici). Mes textes sont déjà authomatiques depuis longtemps et je ne dois utiliser Astyle que lorsque je commence à travailler avec un texte "étranger".

Je peux expliquer pourquoi je formate mes textes de cette manière : le nombre d'onglets (décalés vers la droite de l'approfondissement du texte) correspond au niveau d'imbrication. Chaque { commençant un nouveau niveau, il se trouve sur une ligne distincte avec la même indentation que le texte précédent, et tout le texte suivant est indenté à droite. Chaque } fermé fait reculer le texte d'un onglet. Cela permet de trouver facilement les parenthèses appariées (elles doivent être à la même position verticalement et le nombre de fois où l'on appuie sur la touche Tab correspond au niveau d'imbrication du texte. Les + - > < < internes sont ponctués d'espaces, afin que le texte ne se fonde pas dans une bouillie solide. Pour moi, cela a du sens et du sens.


Maintenant l'histoire : Hier, j'ai reçu le code source de ml5 avec un formatage étrange (de mon point de vue) : les accolades sont décalées vers la droite, à l'intérieur du texte de 2 positions, et le texte à l'intérieur est également à droite, mais seulement d'une position. J'ai essayé d'utiliser le tabulateur pour arriver à la même position où il y a une ouverture { afin de mettre une fermeture } - cela n'a pas fonctionné.

Quelqu'un (peut-être les développeurs) peut-il expliquer la logique du formatage de Metaeditor5 ?

Voici un morceau de code de MACD Sample.mq5 à leur façon et à ma façon :

Styler5                                  -|- Мой стиль
-------                                  -|- ---------
bool CSampleExpert:: LongModified()       -|- bool CSampleExpert:: LongModified()
  {                                      -|- {  
   bool res=false;                       -|-   bool res = false;
//--- check for trailing stop            -|-   //--- check for trailing stop
   if( InpTrailingStop>0)                 -|-   if ( InpTrailingStop > 0)
     {                                   -|-   { 
      if( m_symbol.Bid()- m_position. Price -|-     if ( m_symbol.Bid() - m_position. Pric
        {                                -|-     {
         if( m_position. StopLoss()< m_symb -|-       if ( m_position. StopLoss() < m_symb
           {                             -|-       {
            double sl= m_symbol.Bid()- m_a -|-         double sl = m_symbol.Bid() - m_a
            double tp= m_position. TakePro -|-         double tp = m_position. TakeProfi
            //--- modify position        -|-         //--- modify position
            if( m_trade. PositionModify( Sy -|-         if ( m_trade. PositionModify( Symbo
               printf("Long position by  -|-           printf(" Long position by % s to
            else                         -|-         else
              {                          -|-         {
               printf("Error modifying p -|-           printf(" Error modifying positi
               printf("Modify parameters -|-           printf(" Modify parameters : SL
              }                          -|-         }
            //--- modified and must exit -|-         //--- modified and must exit fro
            res=true;                    -|-         res = true;
           }                             -|-       }
        }                                -|-     }
     }                                   -|-   } 
//---                                    -|-   //---
   return( res);                          -|-   return( res);
  }                                      -|- }
 

ForexTools писал(а) >>

Il se trouve que c'est ainsi que Metaeditor5 présente sa commande Styler.

Quelqu'un (peut-être les développeurs eux-mêmes) peut-il m'expliquer la logique du formatage de Metaeditor5 ?

Je rejoins la question, je me suis toujours posé la question aussi.

 

Ne cherchez pas de logique là où il n'y en a pas. Vous feriez mieux de faire un rapport de bug.

=)

 

Il a toujours soulevé des questions aussi. :(

Je m'en tiens cependant à un style proche de celui de Java.

 
sol >> :

Ne cherchez pas de logique là où il n'y en a pas. Vous feriez mieux de faire un rapport de bug.

=)

Lisez l'aide, car tout y est :


 
sol >> :

Mieux vaut faire un rapport de bug.

Ce n'est pas un bug après tout (pur et simple). C'est juste "qu'ils le voient de cette façon" :)

Je veux d'abord comprendre la logique, s'il y en a une.

 
Rosh >> :

Lisez l'aide, car elle dit tout :

l'aide dit COMMENT le faire, mais elle ne dit pas POURQUOI cela est considéré comme correct, pratique, efficace, .....

pour une telle opération il serait nécessaire de faire des options de styler (par exemple, regardez la documentation sur Astyle)

crochets d'ouverture :

- décalage vers la droite : nombre d'espaces

- saut de ligne : avant ou après

etc.

 
ForexTools >> :

Je veux d'abord comprendre la logique, s'il y en a une.

La logique est que le code est aligné sur le niveau d'imbrication. Il n'y a pas de désaccord ici, comme on peut le voir.

Mais les parenthèses ouvrantes et fermantes ne sont pas du code, mais des éléments de conception, et sont donc légèrement en dehors du code, d'un caractère.

 

Rosh писал(а) >>

Les crochets ouvrants et fermants, en revanche, ne sont pas du code mais des éléments de conception, ils dépassent donc légèrement le code d'un caractère.

Il me semble que les crochets de bloc sont une partie importante du code et mettent en évidence un bloc logique ou fonctionnel. Alors pourquoi ne pas les positionner de manière à ce qu'ils remplissent effectivement cette fonction ? Nous ne parlerons pas encore des espaces autour des opérateurs, etc.

 
Rosh >> :

La logique est que le code est aligné sur le niveau d'imbrication. Il n'y a pas de désaccord ici, comme on peut le voir.

Il y a une différence d'opinion entre ce que vous pensez et ce que les autres utilisateurs trouvent pratique pour eux-mêmes ;)

Je pense que le problème est FACILEMENT éliminé par des réglages supplémentaires du stylet. Je suis sûr que ce n'est pas la chose la plus difficile à faire.

 

Merci TheXpert, je n'avais pas remarqué ce "passage".

А вот открывающие и закрывающие скобки не являются кодом, а являются элементами оформления

ne sortez pas l'excuse que c'était fait d'une manière ou d'une autre et maintenant vous devez au moins l'expliquer ;)

Les éléments de conception sont des commentaires, vous pouvez les supprimer sans perte de fonctionnalité !!! Essayez de supprimer un seul de ces "éléments" (je veux dire } ) - où le compilateur vous enverra-t-il ? :))))