Ajuda para o MetaEditor

Controle Inteligente

Ferramentas diferentes, desde a substituição automática de nomes e dicas de funções até os marcadores e os atalhos, são implementadas no MetaEditor para o desenvolvimento conveniente de programas. Estes meios permitem acelerar o processo de escrita do código-fonte, navegar convenientemente através dele e evitar erros.

As seguintes funções são descritas nesta seção:

Quaisquer alterações feitas no código-fonte podem ser revertidas com o comando "Desfazer Desfazer" do menu "Editar" ou da barra de ferramentas "Padrão" ou pressionando "Ctrl+Z".

Substituição Automática de Nomes de Funções

É a possibilidade de ver a lista de variações de nomes de funções do usuário ou do sistema, constantes, variáveis​​, membros de classes, palavras-chave, etc. As variações são determinadas pelos primeiros caracteres digitados. A abertura desta lista é feita automaticamente quando se escreve o código-fonte. A fim de abrir manualmente esta lista, deve-se usar o comando "Listar Nomes Listar Nomes" do menu "Editar" ou da barra de ferramentas "Padrão" ou pressionando "Ctrl+Space" após os primeiros caracteres do nome serem digitados:

Lista de Nomes

Depois disso, é só escolher a variação desejada usando as teclas "seta para cima" e "seta para baixo" e pressionar a tecla "Enter". A escolha também pode ser feita usando o mouse. Se continuar a digitar as letras do nome da função, a lista de possíveis variações para substituição será mais curta.

Informações sobre Parâmetros

Este recurso permite visualizar os parâmetros da função escolhida e seus tipos. A fim de abrir esta informação, deve-se executar o comando "Parâmetro Info Parâmetro Info" do menu "Editar" ou da barra de ferramentas "Padrão" ou pressionando "Ctrl+Shift+Space". Os comandos devem ser executados quando o cursor do mouse estiver dentro dos colchetes, onde os seus parâmetros estão especificados. A linha de ajuda pop-up, contendo os parâmetros, aparecerá abaixo da função assim que fizer isso:

Informações sobre Parâmetros

Vamos considerar as informações exibidas no exemplo mostrado na imagem acima:

  • [1 of 2] – isto significa que existem duas variações de especificação de parâmetros para a função. Para alternar entre elas, deve-se utilizar a "seta para cima", a "seta para baixo" ou clicar com o botão esquerdo do mouse na linha de dicas;
  • bool – ele indica o tipo do valor devolvido pela função;
  • ObjectSetInteger – o nome da função;
  • (long chart_id, ... ) – a enumeração dos possíveis parâmetros da função; o tipo do parâmetro é especificado antes de cada um deles ("long", neste caso). O parâmetro onde o cursor do mouse está atualmente é exibido em negrito.

Ir para Definição

Esta função permite mover automaticamente para a declaração ou para a definição da função ou variável selecionada. Se a definição ou a declaração está em outro arquivo, então este arquivo será aberto e o cursor do mouse será movido para a posição correspondente. Esta função também permite mover para os arquivos inclusos (#include).

A fim de ir para definição, deve-se colocar o cursor em um parâmetro e executar o comando "Ir para Definição Ir para Definição" do menu "Editar" ou da barra de ferramentas "Padrão" ou pressionando "Alt+G". A fim de ir para um arquivo incluso, deve-se colocar o cursor na linha onde ele está declarado e executar um dos comandos mencionados acima.

Lista de Funções

Este recurso permite abrir a lista de todas as funções declaradas no arquivo atual. A fim de abrir esta lista, deve-se executar o comando "Listar Funções Listar Funções" do menu "Editar" ou da barra de ferramentas "Padrão" ou pressionando "Alt+M".

Lista de Funções

Os parâmetros que foram especificados para as funções são mostrados entre parênteses. Ao clicar com o botão esquerdo do mouse ou usando o "Enter", pode-se ir para a definição da função selecionada no arquivo. Cada tipo de função possui o seu próprio ícone na lista:

  • Função– função;
  • Função de Manipulação de Eventos– função de manipulação de eventos (On*);
  • Método Público de Classe– método público de classe;
  • Método Protegido de Classe– método protegido de classe;
  • Método Privado de Classe– método privado de classe;

Inserir Comentários

Diferentes comandos para se trabalhar com comentários no código-fonte estão implementados no menu "Editar" e na barra de ferramentas "Padrão":

  • Função Cabeçalho Função Cabeçalho – insere um campo para um comentário em uma função;
  • Bloco de Comentário Bloco de Comentário – insere caracteres de um comentário de uma única cadeia de carateres;
  • Linhas de Comentário Linhas de comentário – Insere o "//" dos comentários no início de cada linha selecionada;
  • Linhas Não Comentadas Linhas Não Comentadas – remove o "//" dos comentários no início de cada linha selecionada.

A execução do "Bloco de ComentárioBloco de Comentário" ou o uso do "Ctrl+/" insere os caracteres de um comentário de uma única linha na posição indicada:

//---

Se a "Função CabeçalhoFunção Cabeçalho" ou a combinação "Ctrl+." é utilizada, então a parte do comentário da função será inserida na posição indicada:

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+

Possibilidades adicionais de edição de código

No submenu "Avançado", do menu "Editar", estão disponíveis vários comandos que simplificam a edição de código-fonte:

  • Aumentar o recuo de linhas Aumentar o recuo de linhas – Este comando permite inserir três espaços (caractere de tabulação) no início das linhas selecionadas. Para inserir espaços em branco em uma única cadeia de caracteres, coloque o cursor no seu início. Para inserir espaços em branco em algumas cadeias de caracteres, selecione-as completamente.
  • Diminuir o recuo de linhas Diminuir o recuo de linhas – Este comando permite remover os três espaços (um caractere de tabulação) no início de algumas linhas selecionadas. A operação análoga é realizada usando o atalho Tab+Shift.
  • Todas em minúsculas Todas em minúsculas – converter todas as letras da frase selecionada em letras maiúsculas. A operação análoga é realizada usando o atalho Ctrl+Shift+U.
  • Todas as letras minúsculas Todas em minúsculas – converter todas as letras da frase selecionada em letras minúsculas. A operação análoga é realizada usando o atalho Ctrl+U.

Usando Marcadores

Os marcadores são usados para marcar linhas no código-fonte para a uma navegação mais conveniente através deles. Os comandos para se trabalhar com os marcadores estão localizados no submenu "Marcadores" do menu "Editar", na barra de ferramentas "Padrão" ou no menu contextual do texto. Existem os seguintes comandos para se trabalhar com eles no MetaEditor:

  • Alternar Marcadores Alternar Marcadores – ativa ou desativa um marcador na linha atual do arquivo editado dependendo de seu estado atual. A mesma ação pode ser realizada utilizando a combinação "Ctrl+F2";
  • Seguinte Marcador Marcador Seguinte – move para o próximo marcador no código-fonte atual. A mesma ação pode ser realizada utilizando "F2";
  • Anterior Marcador Marcador Anterior – move para o marcador anterior no código-fonte. A mesma ação pode ser realizada utilizando a combinação "Shift+F2";
  • Remover todos os Marcadores Remover todos os Marcadores – remove todos os marcadores do arquivo atual. A mesma ação pode ser realizada utilizando a combinação "Ctrl+Shift+F2".

O MetaEditor inclui um recurso para se trabalhar com indicadores com nomes - marcadores que possuem um identificador atribuído de um dígito. Para se definir tal marcador, pressione um dígito entre 0 e 9 segurando a tecla "Ctrl". Para ir para uma tecla definida anteriormente, pressione a tecla numérica correspondente, mantendo a tecla "Alt". Os marcadores nomeados tornam a navegação através do código-fonte muito mais fácil.

Ir para a Linha

Para ir rapidamente para uma linha no código do arquivo atual, pode-se usar o comando "Ir para a Linha Ir para a Linha" do menu "Editar" ou da barra de ferramentas "Padrão". A seguinte janela é aberta logo que este botão é pressionado:

Ir para a Linha

O intervalo de linhas contendo o código no arquivo é especificado na janela. Para ir para uma linha, deve-se indicar o número e pressionar o botão "OK".

Snippets

Para tornar a tarefa de se escrever um código mais fácil, o MetaEditor inclui a possibilidade de inserção de snippets - fragmentos de modelos pequenos de código que descrevem um elemento da estrutura da linguagem MQL4/MQL5. Para inserir um snippet, você deve digitar uma palavra-chave especial. Assim que você fizer isso, o cursor vai mudar para Um snippet pode ser inserido, o que significa que um snippet pode ser inserido. O próximo passo é pressionar a tecla "Tab".

Por exemplo, para inserir uma declaração de classe, digite a palavra-chave "class" e pressione a tecla "Tab":

Exemplo de snippet

Assim que você fizer isso, a palavra-chave será substituída por uma declaração de classe. Para alternar entre os campos ativos de um snippet (neste caso eles são o construtor e destruidor de uma classe), use a tecla "Tab" e "Shift+Tab".

Se você alterar um campo ativo, os outros campos do snippet serão alterados automaticamente. Por exemplo, se você alterar o nome da classe, os nomes do construtor e do destruidor serão alterados automaticamente; se você alterar o nome de uma variável em uma das expressões de um operador "for", os nomes das variáveis ​​nas suas outras expressões também serão alteradas.

O sistema de se trabalhar com snippets reconhece estruturas, classes, enumerações, métodos e funções se você pressionar a combinação de teclas "Ctrl+Enter". Com isso, o cursor tem de estar dentro da descrição do elemento estrutural correspondente. Assim que essa combinação for pressionada, o usuário será capaz de se mover entre os membros (por classes, estruturas e enumerações) e argumentos (para os métodos e funções) usando as teclas "Tab" e "Shift+Tab", bem como editá-los em conjunto, como descrito antes.

Neste momento, os snippets a seguir são suportados:

Palavra Chave

Valor

#import

Declaração de uma importação.

OnBookEvent

Manipulação do evento OnBookEvent.

OnCalculate

Manipulação do evento OnCalculate.

case

O seletor "case".

OnChartEvent

Manipulação do evento OnChartEvent.

class

Declaração de uma classe.

OnDeinit

Manipulação do evento OnDeinit.

do

Declaração do loop "do while".

enum

Declaração de uma enumeração.

for

Declaração do loop "for".

if

Declaração do loop "if".

else

Declaração da condição "else".

OnInit

Manipulação do evento OnInit.

OnStart

Manipulação do evento OnStart.

struct

Declaração de uma estrutura.

switch

O seletor "switch".

OnTester

Manipulação do evento OnTester.

OnTesterInit

Manipulação do evento OnTesterInit.

OnTesterPass

Manipulação do evento OnTesterPass.

OnTesterDeinit

Manipulação do evento OnTesterDeinit.

OnTick

Manipulação do evento OnTick.

OnTimer

Manipulação do evento OnTimer.

OnTrade

Manipulação do evento OnTrade.

OnTradeTransation

Manipulação do evento OnTradeTransation.

while

Declaração do loop "while".

Inserindo Recursos

Para facilitar o desenvolvimento de aplicativos, no menu "Editar - Inserir", está disponível uma série de comandos para inserir rapidamente arquivos de recursos.

Configurações como #property

Insere na posição atual do programa a diretiva #property e imediatamente abre a lista de todas as propriedades do programa disponíveis na linguagem.

BMP/WAV como #resrouce

Para adicionar uma imagem ou um arquivo de som nos recursos do programa, basta executar este comando e escolher o arquivo BMP ou WAV (deve estar dentro da pasta \MQL5). Na posição atual do programa será adicionada a diretiva #resource com o caminho corretamente especificado para o arquivo selecionado.

#resource "\\Images\\image.bmp"

DLL/EX5 como #import

Para importar funções da biblioteca externa DLL ou arquivo EX5/EX4, basta executar este comando e selecionar o arquivo (deve estar dentro da pasta \MQL5). Na posição atual do programa será adicionado o par diretiva #import com o caminho corretamente especificado para o arquivo selecionado.

#import "..\Experts\SendNotification.ex5"
 
#import

Entre as diretivas, adicione a descrição das funções importadas.

MQH como #include

Para adicionar um arquivo de inclusão no código do programa, execute este comando e, em seguida, selecione o arquivo MQH (deve estar dentro da pasta \MQL5). Na posição atual do programa será adicionada a diretiva #include com o caminho corretamente especificado para o arquivo selecionado.

#include <Arrays\Array.mqh>

Arquivo como uma matriz binária

Este comando permite que você inclua no texto do programa qualquer arquivo como uma matriz binária. Execute-o e selecione o arquivo desejado (deve estar dentro da pasta \MQL5). À posição atual do programa será adicionada a matriz char.

Usando esse recurso, você pode, por exemplo, transferir modelos de gráficos com junto com experts/indicadores: habilite seu modelo no código do programa na forma de uma matriz, em seguida, use a função FileSave para guardá-lo disco. Depois disso, o modelo pode ser aplicado a um gráfico utilizando a função ChartApplyTemplate.

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- arquivo de modelo como uma matriz binária
   unsigned char my_template[]=
     {
      0xFF,0xFE,0x3C, ... ,0x00 // matriz de dados é reduzida no exemplo
     };
//--- salvando e implementando o modelo
   if(FileSave("my_template.tpl",my_template))
     {
      Print("Custom template saved in \\MQL5\\Files");
      if(ChartApplyTemplate(0,"\\Files\\my_template.tpl"))
         Print("Custom template applied to the current chart");
      else
         Print("Failed to apply custom template");
     }
   else
      Print("Failed to save custom template");
  }

CSV como matriz de texto

Para adicionar um arquivo desde um arquivo de texto no código do programa, execute este comando e, em seguida, selecione o arquivo TXT ou CSV (deve estar dentro da pasta \MQL5). À posição atual do programa será adicionada uma string de tamanho apropriado com dados do arquivo:

string data[][3]=
  {
   {"name1","value1"},
   {"name2","value2"},
   {"name3","value3"}
  };

Convertendo Texto

MetaEditor permite facilmente converter o formato dos dados de origem. Para fazer isso, abra o arquivo, selecione nele o texto e execute um dos comandos no menu "Editar - Converter":

  • ASCII para HEX
  • ASCII para Base64
  • ASCII para matriz binária
  • HEX para ASCII
  • Base64 para ASCII