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 Templates
File
Class
/**
* @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 /
e \*
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 Define
e marque a caixa pop-up Java
para 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:
-
Ginseng amorfo
-
parâmetro único
-
Vários parâmetros formais
-
Sem valor de retorno
-
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 * + Enter
acionar 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.