IDEA configura o modelo de anotação assim - uma obrigação para o desenvolvimento

1. Anotações de aula

Abra IDEA  Settings, clique em , clique   na aba direita  e adicione o conteúdo na caixa vermelha na figura: Editor-->File and Code TemplatesFileClass

/**
 * @author jitwxs
 * @date ${YEAR}年${MONTH}月${DAY}日 ${TIME}
 */

No modelo de exemplo que forneci, o autor e a hora são indicados, e todos os parâmetros do modelo suportados pelo IDEA estão  Description listados abaixo.

Após salvar, as anotações da turma serão adicionadas automaticamente quando você criar uma nova turma. Se quiser também fazer efeito na interface, basta configurar os itens da imagem acima ao mesmo tempo  Interface .

2. Notas de Método

  • @param Gere anotações automaticamente com base em parâmetros formais 

  • Gere  @Return anotações de forma inteligente com base no fato de o método ter um valor de retorno

Comparado aos modelos de classe, adicionar modelos de anotação aos métodos é mais complicado. Primeiro,  Settings clique em  Editor-->Live Templates.

Clique na extrema direita  +e selecione primeiro   para criar um grupo de modelos:2. Template Group...

Preencha o nome do grupo na caixa de diálogo pop-up, aqui eu o chamo de userDefine:

Em seguida, selecione o grupo de modelos que você acabou de criar  userDefine, clique  +e selecione  :1. Live Template

Neste ponto, um modelo vazio será criado e modificaremos os arquivos  Abbreviation,Description  e  Template text. Deve-se observar que Abbreviation deve ser  *, e o valor na verificação final  Expand with é a tecla Enter .

O conteúdo da imagem acima  Template text é o seguinte, copie-o diretamente. Observe que não há primeira linha  /\* está na grade superior .

*
 * 
 * @author jitwxs
 * @date $date$ $time$$param$ $return$
 */

Você notou  No applicable contexts yet aquele no canto inferior direito? Isso significa que este modelo não especificou o idioma do aplicativo no momento:

Clique  Definee marque a caixa pop-up Javapara aplicar o modelo a todos os arquivos do tipo Java

Lembre-se de que nossa configuração  Template text incluiu  $date$ parâmetros semelhantes a este. No momento, o IDEA não sabe quais são esses parâmetros. A seguir, realizaremos o mapeamento de métodos nesses parâmetros para que o IDEA possa entender o significado deles. Clique  no botão:Edit variables 

Defina os parâmetros correspondentes para cada parâmetro  Expression:

Deve-se notar que date e  time use  Expression as funções integradas do IDEA, que podem ser selecionadas diretamente usando a caixa suspensa. A  param implementação padrão deste parâmetro no IDEA é muito pobre, então precisamos implementá-lo manualmente. O código é o seguinte:

groovyScript("def result = '';def params = \"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) {if(params[i] != '')result+='* @param ' + params[i] + ((i < params.size() - 1) ? '\\r\\n ' : '')}; return result == '' ? null : '\\r\\n ' + result", methodParameters())

Além disso,  return eu também implementei esse parâmetro. O código é o seguinte:

groovyScript("return \"${_1}\" == 'void' ? null : '\\r\\n * @return ' + \"${_1}\"", methodReturnType())

Obs: Você notou também que não marquei  Skip if defined o atributo, o que significa que se este item for definido na geração da anotação, o cursor do mouse irá ignorá-lo diretamente. Não preciso desse recurso, então essa propriedade deve ser verificada.

Clique em OK para salvar as configurações e pronto!

3. Resultados da inspeção

3.1 Anotações de classe

As anotações de classe são geradas automaticamente somente quando uma nova classe é criada . O efeito é o seguinte:

3.2 Comentários sobre o método

Serão demonstradas as seguintes situações:

  1. Ginseng amorfo

  2. parâmetro único

  3. Vários parâmetros formais

  4. Sem valor de retorno

  5. Existe um valor de retorno

Por exemplo, perguntas e respostas

(1) Por que o modelo  Abbreviation precisa ser chamado  \* ? Expand with Certifique-se de que é a tecla Enter?

Resposta: Porque a lógica de geração do template IDEA é que  模板名 + 生成键quando a chave de geração é Enter, podemos  * + Enter acionar o template digitando.

Isso também explica por que a primeira linha do modelo de comentário é one  * , porque quando inserimos primeiro  /*e depois inserimos para  * + Enteracionar o modelo, a primeira linha é escrita exatamente  /**, o que está em conformidade com a especificação Javadoc.

(2) Por que há uma linha vazia no modelo de comentário  \*?

Resposta: Como estou acostumado a escrever instruções de método nesta linha, reservei uma linha vazia para escrever. Você também pode excluí-la.

(3)  $time$$param$ Por que essas duas coisas aparentemente não relacionadas estão próximas no modelo de anotação?

Resposta: Em primeiro lugar, a maioria das funções de geração de parâmetros fornecidas na Internet ainda gerarão uma linha vazia sem parâmetros  @param, então modifiquei o código da função param para que ela não a gere sem parâmetros , mas isso requer lidar com outros Na mesma linha, caso contrário, backspaces não poderão ser manipulados. @param$param$ 

(4) Por que o parâmetro de retorno não é usado,  methodReturnType()mas implementado por si mesmo?

Resposta: methodReturnType() void será retornado se não houver valor de retorno, o que não faz sentido, então processei o valor de retorno de methodReturnType() e o gerei somente quando houver um valor de retorno.

(5) Por que  não uma linha separada? $return$

Resposta: Porque ao  methodReturnType() retornar nulo, o problema de backspace não pode ser resolvido, o motivo é o mesmo do terceiro ponto.

 

 

 

 

 

 

 

 

 

 

 

Acho que você gosta

Origin blog.csdn.net/guoweiting/article/details/115393145
Recomendado
Clasificación