IDE Snippets

A IDE do Gambas fornece um conjunto modificável de atalhos de códigos, que facilita consideravelmente o esforço para digitar na IDE. Entre com o código do atalho no início de uma linha e pressionando a tecla TAB o atalho irá expandir automaticamente em um pedaço de código definido.

Os atalhos padrão fornecidos com o IDE pode ser visto na guia Code formatting (Formatação do código) do formulário Preferências. Na parte inferior da guia Code Snippets na lista deslizável de strings gatilho no macro expansão associado.

Usando IDE Snippets

Ativar / Desativar

Para utilizar IDE Snippets na edição de código, a caixa de seleção Activate Code Snippets (Ativar trechos de código) deve ser habilitado nas Preferências. Para que o IDE Snippets expanda e inclua os recursos do código embutido no Gambas.

Se Activate Code Snippets não for habilitado, quando a tecla TAB for pressionada após entrar com uma string gatilho, a ação simplesmente insere um caractere TAB na linha de código atual.

Alguns exemplos comumente usados

p TAB irá inserir uma declaração de propriedade. O cursor será posicionado no ponto onde o nome da propriedade pode ser inserido. O texto selecionado pode simplesmente ser subscrito. Pressionando a tecla TAB novamente irá posicionar o cursor no ponto de entrada do tipo de dados da propriedade. Finalmente pressionando a tecla Enter vai finalizar a expansão snippet e retornar o uso do editor da IDE ao seu estado "normal".

f TAB irá inserir um bloco de declaração de função. Mais uma vez o cursor será posicionado para a entrada do nome da função. No entanto, neste caso, pressionando a tecla TAB mais vezes irá percorrer os pontos de entrada para o nome da função, os Argumentos, o tipo de retorno e, finalmente, para o ponto de entrada da primeira linha de código da função. Nota-se que, neste caso, o editor IDE parece ter voltado para "operação normal". Na verdade, o analisador snippet ainda está em operação e permanece assim até que você mova o cursor para fora do bloco da função. Assim, por exemplo, se você esqueceu de declarar o tipo de retorno, posicionando o cursor em qualquer lugar na linha da declaração da função e pressionando a tecla Tab vai destacar indicando que é possível realizar as correções.

Alguns outros gatilho que você vai querer investigar são:
  • Main TAB: gera o sub Principal.

  • Fe TAB: gera um bloco For Each ... Next

  • D TAB e di TAB e outros derivados: gera linha Dim

  • Gpl Tab: gera a declaração GPL versão curta (O meu favorito!)

Finalmente, se a expansão inicial não é o que você queria, basta pressionar Ctrl + z para voltar a sua digitação original.

Macros Expansão

Você pode definir seus próprios IDE Snippets!

Mais uma vez, no formulário Preferências Code formatting no guia ao lado da lista de snippets estão os botões para criar, alterar ou excluir snippets personalizados (que também irá permitir que você veja os padrões no modo de somente leitura (útil se você deseja copiar a macro existente). Para criar um novo snippets é só clicar no botão "Novo ...". É apresentado a você um formulário contendo dois controles, uma caixa de texto para inserir a string de gatilho e um editor para entrar com o macro expansão.

Se você tentar usar uma string gatilho que já está definida, Quando você tentar salvar o snippet o IDE irá mostrar um balão "Essa frase gatilho já está em uso." ("This trigger string is already in use.").

Syntax

A sintaxe para IDE Snippets é muito simples, mas você pode levar algum tempo para se acostumar. Há duas partes, como indicado acima, a string gatilho e a expansão macro.

Strings gatilho
A Strings gatilho pode ser qualquer cadeia de caracteres sem espaços interiores. No entanto, é provavelmente mais seguro usar strings caixa baixa alfa ou alfa+numéricas. Não é muito difícil eh!

Expansão Macros
Macros de expansão tem três aspectos.

Código Literal
É qualquer sequência de caracteres e caracteres de escape não incluídos abaixo. Assim como texto

If IsInteger(sText) Then
Retrun False

Será inserido como é incluindo os principais espaços, novas linhas e guias (que você vai ver como sequências de escape na lista de Preferências). Na verdade, a inserção de sequências de escape no macro deve ser evitado, a menos que eles sejam parte de uma string literal, uma vez que escap é duplicado no código interno do macro.

(Sim, até mesmo um erro de digitação será inserido na íntegra.)

Pontos de inserção
Indica onde o cursor será posicionado após a expansão. Eles são indicados por um sub-string $ {n: lit_token} no código onde n é a posição do cursor ordinal do token e lit_token é o texto que será exibido em destaque para esse token. Assim:

? {$1:Variable}

Resultará em:

? Variable

(que irá expandir automaticamente para " Print ..." quando você sair dessa linha.)

Metadados do Projeto
A expansão macro também permite que você insira alguns pedaços de metadados do projeto em sua macro. Os metadados atualmente disponível é:

  • O título do projeto. (use ${n:$TITLE} token)

  • A descrição do projeto. (use ${n:$DESCRIPTION) token), e

  • O autor do projeto. (use ${n:$AUTHOR} token)