다음은 스타일입니다! :)

 

배경: 수년간의 코딩을 통해 저는 "내" 스타일의 텍스트 디자인을 개발했습니다( 여기 ). 텍스트는 오랫동안 "기계에서" 작성되었으며, 게다가 Astyle은 일종의 "외부" 텍스트로 작업을 시작할 때에만 의존해야 합니다.

텍스트 형식을 이렇게 지정하는 이유를 설명할 수 있습니다. 탭 수(텍스트 깊이 오른쪽으로 이동)는 중첩 수준에 해당합니다. 각 여는 {는 새 수준을 시작하므로 이전 텍스트와 들여쓰기가 동일한 별도의 줄에 있으며 그 뒤의 모든 텍스트는 오른쪽에 추가 들여쓰기가 있습니다. 닫을 때마다 }는 텍스트를 한 탭 뒤로 반환합니다. 이렇게 하면 쌍으로 된 대괄호를 쉽게 찾을 수 있습니다(같은 위치에 세로로 있어야 하며 Tab 키 입력 횟수는 텍스트의 중첩 수준에 해당합니다. 내부 + - > <는 텍스트가 병합되지 않도록 공백으로 제거됩니다. 계속되는 난장판 나에 관해서는 - 모든 것이 합리적이고 명확합니다.


이제 이야기: 어제 그들은 이상한 (내 관점에서 볼 때) 형식이 있는 ml5 소스를 보냈습니다. 중괄호는 오른쪽으로 이동하고 텍스트 내부는 2칸 이동하고 그 안의 텍스트도 오른쪽으로 이동하지만 한 위치에 의해서만. 여는 { 닫는 } - 작동하지 않는 표와 같은 위치에 가려고 했습니다. 밝혀진 바와 같이 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 >> :

나는 먼저 논리를 이해하고 싶습니다. 물론 거기에 있다면.

논리는 코드가 중첩 수준에 따라 정렬된다는 것입니다. 여기에서 볼 수 있듯이 여기에는 이견이 없습니다.

그러나 여는 대괄호와 닫는 대괄호는 코드가 아니라 디자인 요소이므로 코드의 경계를 넘어 한 글자 정도 약간 돌출되어 있습니다.

 

Rosh писал(а) >>

그러나 여는 대괄호와 닫는 대괄호 는 코드 가 아니라 디자인 요소이기 때문에 코드의 경계를 넘어 한 글자 정도 약간 돌출되어 있습니다 .

블록 괄호는 코드의 중요한 부분이며 논리적 또는 기능적 블록을 표시하는 것 같습니다. 그렇다면 실제로 이 기능을 수행하도록 배열하지 않는 이유는 무엇입니까? 오퍼레이터 주변의 공백 등에 대해 우리가 이야기 할 때까지.

 
Rosh >> :

논리는 코드가 중첩 수준에 따라 정렬된다는 것입니다. 우리가 보는 바와 같이 여기에는 이견이 없습니다.

당신이 생각하는 것과 다른 사용자가 자신에게 편리하다고 생각하는 것에 대해 의견이 일치하지 않습니다.)

추가 스타일링 설정으로 문제를 쉽게 제거할 수 있다고 생각합니다. 이것이 구현하기 가장 쉬운 작업이라고 확신합니다.

 

감사 합니다 Xpert , 어떻게 든 나는이 "구절"을 눈치 채지 못했습니다.

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

글쎄, 어떻게 된 일인지에 대한 변명의 귀를 뽑지 말고 이제 적어도 어떻게 든 설명해야합니다.)

디자인 요소는 주석입니다. 기능 손실 없이 제거할 수 있습니다!!! 적어도 하나의 그러한 "요소"를 제거하는 방법을 시도하십시오(내 말은 } ) - 컴파일러가 당신을 어디로 보낼 것입니까? :)))))