İşte stil! :)

 

Arka plan: Kodlama yılları boyunca, "kendi" metin tasarımı stilimi geliştirdim ( burada ). Metinler uzun süredir "makinede" çiziliyor ve ayrıca Astyle'a yalnızca bir tür "yabancı" metinle çalışmaya başladığınızda başvurulması gerekiyor.

Metinlerimi neden bu şekilde biçimlendirdiğimi açıklayabilirim: sekme sayısı (metnin derinliklerinde sağa kaydırma) yuvalama düzeyine karşılık gelir. Her açılış { yeni bir seviye başlatır, bu nedenle önceki metinle aynı girintiye sahip ayrı bir satırdadır ve ondan sonraki tüm metinler sağda ek bir girinti ile gelir. Her kapanış } metni bir sekme geri döndürür. Bu, eşleştirilmiş parantezleri bulmayı kolaylaştırır (dikey olarak aynı konumda olmalıdırlar ve Sekme tuş vuruşlarının sayısı metnin iç içe geçme düzeyine karşılık gelir. Metin birleşmemesi için dahili + - > < boşluklarla vurgulanır. sürekli bir karışıklık Bana gelince - her şey makul ve açık .


Şimdi hikaye: Dün bana biraz garip (benim açımdan) biçimlendirme ile ml5 kaynağı gönderdiler: küme parantezleri sağa kaydırılır, metnin içinde 2 konum ve içlerindeki metin de sağdadır, ancak sadece bir pozisyonla. Açmanın {kapanışı koymak için} - çalışmadığı tablo ile aynı konuma gelmeye çalıştım. Görünüşe göre Metaeditor5, Styler ekibiyle metinleri bu şekilde biçimlendiriyor.

Birisi (belki geliştiricilerin kendileri) bana Metaeditor5 biçimlendirme mantığını açıklayabilir mi?

İşte benim görüşüme göre MACD Sample.mq5'ten bir kod parçası:

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

Anlaşıldığı üzere, Metaeditor5, Styler komutuyla metinleri bu şekilde biçimlendirir.

Birisi (belki geliştiricilerin kendileri) bana Metaeditor5 biçimlendirme mantığını açıklayabilir mi?

Soruya katılıyorum, ayrıca her zaman ilginçti.

 

Mantık olmayan yerde mantık aramayın. Bir hata raporu dosyalasan iyi olur.

=)

 

Hep soruları gündeme getirdi. :(

Ancak Java'ya benzer bir stile bağlıyım.

 
sol >> :

Mantık olmayan yerde mantık aramayın. Bir hata raporu dosyalasan iyi olur.

=)

Yardım'ı okuyun, çünkü orada her şey söyleniyor:


 
sol >> :

Bir hata raporu dosyalasan iyi olur.

Eh, hala bir böcek değil (en saf haliyle). Aynen öyle görüyorlar :)

İlk önce mantığı anlamak istiyorum, eğer oradaysa tabii.

 
Rosh >> :

Yardımı Okuyun, çünkü orada her şey söyleniyor:

yardımda NASIL yapıldığı yazılır, ancak NEDEN doğru, uygun, etkili olarak kabul edildiği yazılmaz ....

böyle bir işlem için, genel olarak, şekillendiriciyi ayarlamak için seçenekler yapmak gerekir (örneğin, aynı Astyle için dokümana bakın)

açılış parantezleri:

- sağa kaydırma: boşluk sayısı

- yeni satır: önce veya sonra

peki, vb.

 
ForexTools >> :

Önce mantığı anlamak istiyorum, tabii eğer oradaysa.

Mantık, kodun yuvalama düzeyine göre hizalanmasıdır. Gördüğümüz gibi burada bir anlaşmazlık yok.

Ancak açma ve kapama parantezleri kod değildir, tasarım öğeleridir ve bu nedenle kodun sınırlarının biraz dışına bir karakter kadar çıkar.

 

Rosh писал(а) >>

Ancak açma ve kapama parantezleri kod değildir , tasarım öğeleridir ve bu nedenle kodun sınırlarının biraz dışına bir karakter kadar çıkar.

Bana öyle geliyor ki blok parantezler kodun önemli bir parçası ve mantıksal veya işlevsel bir bloğu işaretliyor. Öyleyse neden onları bu işlevi gerçekten yerine getirecek şekilde düzenlemiyorsunuz? Operatörlerin etrafındaki boşluklar vb. biz konuşana kadar.

 
Rosh >> :

Mantık, kodun yuvalama düzeyine göre hizalanmasıdır. Gördüğümüz gibi burada bir anlaşmazlık yok.

Ne düşündüğünüz ve diğer kullanıcıların kendileri için uygun buldukları konusunda anlaşmazlıklar var;)

Ek stil ayarlarıyla sorunun KOLAY ÇIKARILDIĞINI düşünüyorum. Bunun uygulanması en kolay görev olduğuna eminim.

 

Teşekkürler TheXpert , bir şekilde bu "geçişi" fark etmedim bile

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

Eh, bir şekilde yapılanlar için bir bahaneye kapılmayın ve şimdi en azından bir şekilde açıklamanız gerekiyor;)

tasarım öğeleri yorumlardır. işlevsellik kaybı olmadan kaldırılabilirler!!! en az bir "öğe"yi nasıl kaldıracağınızı deneyin (yani } ) - derleyici sizi nereye gönderecek? :))))