Estilizador no terminal comercial MetaTrader 5 - página 6

 
Renat :

Quando recolher, gerir e pagar a Base de Código por si próprio, a questão cairá imediatamente.

Não, afinal estás a rir-te.

Como é que o estilizador se relaciona com a base? Como é que a ferramenta de um programador (que utiliza para facilitar o seu trabalho) se relaciona com as regras de publicação (que podem não ter nada a ver com o seu trabalho)?

Você mesmo disse que todos os códigos serão automaticamente "penteados" pelo estilizador antes da publicação. Então deixe-o "penteá-los" ao seu estilo antes da publicação, ninguém está a discutir sobre isso!

Separar os conceitos de "base" e "estilista", e tudo se encaixará no seu lugar.



Renat:

Ou acha que tudo por aqui é feito de graça?

Renat, está bem ciente de que a base traz rendimentos (embora indirectamente).

E por alguma razão também está a dar o terminal de graça.



Renat:

Agora só se fala de "só é mau porque não é personalizável" por uma questão de princípio.

Passemos a pontos específicos - indicar qual o ponto e porque não é feito correctamente pelo estilizador.

O que está errado não é uma acção específica, mas a abordagem em si.

É inaceitável que se insista num estilo (qualquer que seja). Não são pioneiros, e vários estilos diferentes de programação já foram estabelecidos antes de vós. Cada um tem as suas próprias vantagens e desvantagens, e cada um é familiar ao seu utilizador.

A escolha de uma opção significa que rejeita automaticamente mais de metade dos programadores. Não os forçará a reciclarem-se. Além disso, muitos começam a escrever em MQL após uma sólida experiência em programação em outras linguagens.


A solução é simples e óbvia - fazer parâmetros personalizáveis e alguns estilos padrão. Coloque o seu por defeito, mas permita alterar as suas definições. Acreditem, os novatos (se de repente se preocuparem que eles comecem a escrever "errado") nunca entrarão nestes cenários!


Exemplos de configurações a listar? ;)

 
Obrigado, um ponto "quantos espaços antes de um parêntese encaracolado" foi feito. Nós pomos 2 e você põe 0.


Passemos aos pontos seguintes.

 
Renat :
Obrigado, um ponto "quantos espaços antes de um parêntesis encaracolado" é expressado. Nós pomos 2 e você põe 0.


Passemos aos pontos seguintes.

  1. Espaços à volta = += -= *= /* -- ++ + - * /, depois de "(", depois de "," e antes de ")";
  2. Uma aba em vez de 3 espaços na indentação seria de todo grande.
 
Renat :

Passemos aos pontos seguintes.

Não sofrer tanto. "Tudo já foi roubado antes de nós".

Veja a lista de artigos de Astyle. Provavelmente não se sentirá inspirado pela lista completa de não-custificados, e provavelmente não precisa dela, mas é breve e claro - pode escolher o que precisa.

Artistic Style
  • astyle.sourceforge.net
becomes (with break‑after‑logical):
 
komposter :
  1. Espaços à volta = += -= *= /* -- ++ + - * /, depois de "(", depois de "," e antes de ")";
  2. Os separadores em vez de 3 espaços na indentação seriam espectaculares.


no ponto 2: a tabulação é má - tente olhar para o mesmo código em editores diferentes... flutuará, para o dizer de forma suave
 
mql5 :


no ponto 2: a tabulação é má - tente olhar para o mesmo código em editores diferentes... flutuará para o pôr suavemente
komposter:
  1. Espaços à volta = += -= *= /* -- ++ + - * /, depois de "(", depois de "," e antes de ")";
  2. Os separadores em vez de 3 espaços na indentação seriam espectaculares.


É por isso que não tem de penteá-lo à sua própria maneira. Cada um tem a sua própria barata na cabeça. Dar ao povo pão e circos. Escolheremos por nós próprios o que quisermos.

 
mql5 :


no ponto 2: a tabulação é má - tente olhar para o mesmo código em editores diferentes... para o dizer de forma suave, flutuará

A solução é simples, a tabulação (travessão) é feita ou pelo carácter da tabulação (depois pode flutuar) ou pelo número correcto de espaços (depois tudo será igual em todo o lado).

Artistic Style
  • astyle.sourceforge.net
becomes (with break‑after‑logical):
 

O segundo ponto "separe as operações com espaços" é expresso.


Existem outros pontos?

 
Renat :

O segundo ponto de 'espaços de operações separados' é expresso.

Algum outro ponto?


class Class
{ // скобка на уровне объявления
private: // спецификаор на уровне объявления
   // приватные типы
   definition; // объявления и определения функций и членов с отступом
  
protected:
   // защищённые типы
   definition;
public:
   // публичные типы
   definition;

public:
   definition;
  
protected:
   definition;
  
private:
   definition;

}; // скобка на уровне объявления

Enums:

enum ProceedObject
{ // скобка на уровне объявления
   EPO_BAT,
   EPO_LEFT_BORDER,
   EPO_RIGHT_BORDER,
   EPO_UP_BORDER,
   EPO_DOWN_BORDER,
   EPO_FLOOR,
   EPO_CEILING,
   EPO_BRICKS, // значения по отступу,
}; // скобка на уровне объявления

Ifs:

if(condition1) 
{
   DoSomething();
   //...
}
else if(condition2)
{
   DoSomethingOther();
   //...
}
else
{
   DoSomethingOtherAgain();
   //...
}

Sweets

switch(condition) 
{
    case 1:
    case 2:
        x = ...;
    break;
    case 3:
{
         x = ...;
//...
}
    break;
    default:
        x = ...;
    break;
}
 

Os pontos de interesse específicos são "funciona assim agora, e deveria funcionar assim".


O alinhamento dos parênteses já foi expresso.