Uma ferramenta poderosa de geração de código em IDEA

Autor | Sharehub

Link | blog.xiaohansong.com/idea-live-templates.html

Prefácio

O processo de desenvolvimento Java geralmente precisa escrever código com um formato fixo, como declarar uma variável privada, logger ou bean e assim por diante. Para esta geração de código em pequena escala, podemos usar a função Live Templates fornecida pelo IDEA. No início, pensei que fosse apenas um snippet de código simples, mas depois descobri que ele suporta configuração de função variável e pode suportar geração de código muito complexo.

Deixe-me apresentar o uso de Live Templates.

Uso básico

IDEA vem com muitos modelos dinâmicos comumente usados, digite fori no código Java e o retorno de carro aparecerá

for (int i = 0; i < ; i++) {

}


Pressione Tab para pular para cada espaço em branco e preencher o valor manualmente.

Modelo personalizado

Afinal, os modelos integrados oficiais não atendem às necessidades de nosso estilo de codificação pessoal. Os modelos Live fornecem funções variáveis ​​para personalizarmos.

Uso simples

Para adicionar um modelo personalizado, primeiro você precisa preencher a palavra de gatilho (ou seja, abreviação), a descrição é opcional e, em seguida, definir o contexto do modelo, clique em definir para selecionar Java, de modo que o modelo atual seja acionado durante a edição Java. Depois que o contexto é definido, você pode preencher o modelo.

Aqui estão alguns modelos simples que costumo usar

==========
<out>
----------
System.out.println($END$)
==========
<pfs>
----------
private final static String $varName$ = "$var$";`
==========
<privateField>
----------
/**
 * $COMMENT$
 */
@Getter
@Setter
private $TYPE$ $NAME$;
==========
<main>
----------
public static void main(String[] args) {
     $END$
}
==========

O modelo suporta a definição de variáveis, usando $$caracteres fechados para representar uma variável. $END$É uma variável predefinida especial que indica a posição em que o cursor salta por último. A posição de cada variável pode ser pulada.

Uso avançado

Se você usou o plugin Code Sinppet do vim, você descobrirá que as funções podem ser executadas no template. Claro, os poderosos Live Templates também o suportam, e o IDEA pode perceber a semântica do código, como os parâmetros do função atualmente editada. Mas isso nos permitirá jogar. Vamos estudar a função das funções de modelo de fácil a difícil.

As variáveis ​​que mencionamos anteriormente podem ser associadas a funções e o método de configuração é mostrado na figura acima.

Declare variáveis ​​rapidamente

Declarar variáveis ​​é uma operação comum, especialmente quando você precisa declarar variáveis ​​que precisam ser anotadas. Quando você comenta, esses códigos são muito chatos de escrever. Aqui está o modelo que defini:

<osgiRef>
----------
/**
 * $END$
 */
@OsgiReference
@Setter
private $TYPE$ $NAME$;

À primeira vista, esse modelo parece semelhante ao privateField que defini acima.A única diferença é que eu vinculo funções a essas variáveis.

  • clipboard (): Retorna a string da área de transferência atual

  • decapitalize (): altera a primeira letra da string de entrada para minúscula

Vamos demonstrar abaixo, primeiro copiamos o nome da classe atual e, em seguida, inserimos osgiRef

Declare o logger rapidamente

Declarar logger também é uma operação comum. Acima usamos a função paste para declarar variáveis ​​rapidamente. Agora vamos usar outra função className (). Como o nome sugere, sua função é retornar o nome da classe atual.

<logger>
----------
/** logger */
private static final Logger LOGGER = LoggerFactory.getLogger($CLASS$.class);

O groovyScript mais poderoso ()

Se as funções usadas acima fornecem recursos limitados e não são flexíveis o suficiente, então groovyScript () fornece todos os recursos que você deseja.Ele suporta a execução de scripts Groovy para processar a entrada e, em seguida, produzir a string processada.

groovyScript("code", ...)

| code |   一段Groovy代码或者Groovy脚本代码绝对路径 |
|  ... | 可选入参,这些参数会绑定到`_1, _2, _3, ..._n`, 在 Groovy 代码中使用。|

Vamos dar uma olhada em sua aplicação prática.

Configuração rápida do bean

Para adicionar um novo serviço, você deve registrar um bean no Spring. Geralmente, esta configuração nada mais é do que especificar o id e a classe. Como estamos configurando em xml, não podemos usar a função className (), mas podemos usar a área de transferência () para obtê-lo. Para obter a referência completa da classe, no IDEA, clicamos diretamente com o botão direito do mouse no nome da classe e clicamos em Copiar Referência. Em seguida, execute o script bacana para obter o nome da classe.

<bean>
----------
<bean id="$id$" class="$REF$" />

associação de id decapitalize(groovyScript("_1.tokenize('.')[-1]", clipboard())), primeiro pegue clipboard()o valor para obter a referência completa da classe e, em seguida, execute o código groovy _1.tokenize('.')[-1](pressione. para dividir em uma matriz de string, pegue o último para obter o nome da classe e, em seguida, use decapitalize()minúsculas a primeira letra para obter o id.

Imprima rapidamente as informações do contexto atual

Ao imprimir o log de erros, é necessário imprimir as informações de contexto atuais, como parâmetros de entrada. Às vezes, quando há muitos parâmetros, é difícil escrever. Felizmente, há uma função de modelo methodParameters (), que retorna um lista de parâmetros de função atuais. Claro, não pode ser usado diretamente, ele precisa ser convertido com groovyScript.

<printContext>
---------------
LogUtil.$TYPE$(LOGGER, "$MSG$ " + $params$);

A vinculação de parâmetros a groovyScript("'\"' + _1.collect { it + ' = [\" + ' + it + ' + \"]'}.join(', ') + '\"'", methodParameters())ele formatará e produzirá automaticamente os parâmetros da função atual.

Resumindo

Acima, apresentamos brevemente as funções de modelo comumente usadas. Na verdade, IDEA tem muitas outras funções de modelo. Para obter detalhes, consulte Criando e editando variáveis ​​de modelo.

https://www.jetbrains.com/help/idea/2016.3/creating-and-editing-template-variables.html

O IDEA é uma ferramenta muito poderosa. O bom uso de ferramentas pode melhorar muito a eficiência do trabalho e dedicar energia a coisas importantes, em vez de perder tempo escrevendo código repetitivo. Alguns usos mais avançados ainda não foram descobertos. Finalmente, promovi uma onda de plug-ins de geração de código CodeMaker que escrevi, e fazer bom uso dele pode economizar muito tempo para a escrita de código repetitivo.

PS: Além disso, o editor criou um grupo de intercâmbio de aprendizagem, que é proibido de promover. O ambiente do grupo é muito bom. Se você tiver alguma dúvida, também pode fazer perguntas no grupo. Amigos em necessidade podem adicioná-lo ~

Além disso, o modo de grupo - a varredura do fundo ???? autor do código bidimensional, notas: plus grupo

Amigos que gostaram deste artigo, por favor, cliquem na imagem para acompanhar a conta de inscrição e assistir a mais conteúdos interessantes!

Leitura recomendada:

Clique para ver e vá!

Acho que você gosta

Origin blog.csdn.net/qq_39507327/article/details/104832402
Recomendado
Clasificación