これがスタイルだ!:)

 

前史: 長年のコーディングで、私はテキストフォーマットの「個人的」なスタイルを確立しました(こちら)。私のテキストはすでに長い間自動化されており、Astyleを使うのは「異質な」テキストを扱うときだけです。

私がなぜこのようにテキストをフォーマットするのかを説明すると、タブの数(テキストの右深くにシフトしている)がネストレベルに対応しているのです。それぞれのオープニング{は新しいレベルを開始するので、前のテキストと同じインデントで別の行になり、それ以降のすべてのテキストは右側にインデントされます。を閉じるごとに、テキストは1タブ分戻ります。これにより、対になる括弧を簡単に見つけることができます(縦に同じ位置にあるはずで、Tabキーを押した回数がテキストの入れ子レベルに対応します)。内部の+-><はスペースで区切り、文字がドロドロに混ざらないように配慮しています。私にとっては、これは理にかなったことで、納得のいくことです。


中括弧が2つ分右側に移動し、その中のテキストも1つ分右側に移動しています。Metaeditor5では、Stylerというコマンドでこのようなことができることがわかりました。

どなたか(たぶん開発者の方)、Metaeditor5のフォーマットのロジックを説明していただけませんか?

MACD Sample.mq5のコードの一部を、彼らの方法と私の方法で紹介します。

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 писал(а) >>

ということで、Metaeditor5のStylerコマンドはこのような形式になっています。

どなたか(多分開発者自身)、Metaeditor5のフォーマットのロジックを説明していただけませんか?

私もずっと疑問に思っていたので、質問に参加します。

 

論理のないところに論理を求めるのはやめましょう。バグレポートを作成したほうがいい。

=)

 

常に疑問も投げかけていた。:(

しかし、私はJavaのようなスタイルにこだわっています。

 
sol >> :

論理のないところに論理を求めるのはやめましょう。バグレポートを作成した方が良いですよ。

=)

ヘルプを読むと、全部書いてあるから。


 
sol >> :

バグレポートを作成したほうがいい。

結局はバグではない(純然たるもの)。あくまで「そう見られている」だけなのです :)

ロジックがあれば、まずそれを理解したい。

 
Rosh >> :

ヘルプを読めば、すべてがわかるから。

ヘルプには「どうやるか」は書いてありますが、「なぜ」それが正しいのか、便利なのか、効率的なのか、などについては書いてありません。

このような操作を行うには、スタイラスオプションを作成する必要があります (たとえば、Astyle のドキュメントを参照してください)。

オープニングブラケット:

- 右シフト:スペース数

- 改行:前か後か

など

 
ForexTools >> :

ロジックがあれば、まずそれを理解したい。

ネストレベルまでコードが揃うというロジックです。ここには、見ての通り異論はない。

しかし、開閉カッコはコードではなく、デザイン要素なので、1文字分微妙にコードから外れています。

 

Rosh писал(а) >>

一方、開閉カッコはコードではなく デザイン要素なので、コードから 1文字分わずかにはみ出します

ブロック括弧はコードの重要な部分であり、論理的または機能的なブロックを強調するものだと思われます。では、実際にその機能を果たすように配置してはいけないのでしょうか?オペレーターの周りのスペースなどについては、まだお話しません。

 
Rosh >> :

ネストレベルまでコードが揃うというロジックです。ここには、見ての通り異論はない。

自分が思うことと、他のユーザーが自分にとって便利だと思うことは、意見が分かれるところです ;)

スタイラーの追加設定によって、この問題はEASILYに取り除かれると思います。きっと一番難しいことではないのでしょう。

 

TheXpert さん、どうもこの "一節 "には気がつきませんでした。

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

まあ、なんとなくでやったから説明くらいしろとかいう言い訳はやめてね ;)

デザインエレメントは解説文なので、機能を損なうことなく削除できます! このような「エレメント」(つまり })を1つだけ削除してみてください。:))))