Comentario de plantilla personalizada de IDEA (resuelto el problema de los parámetros vacíos y los valores de retorno)

Prefacio

Creo que muchas personas han encontrado varios problemas al configurar los comentarios de la plantilla, especialmente cuando se configuran los comentarios de la plantilla de método (como los parámetros y los valores de retorno están vacíos). También he realizado muchas búsquedas en Internet, pero sabes que, al final, no volveré a nada. Este artículo te solucionará este problema. Debido a que las anotaciones de plantilla de la clase son muy sencillas, los métodos de búsqueda online también pueden solucionar el problema de generar clases. La situación de los comentarios de la plantilla, por lo que este artículo no presentará, solo cómo generar comentarios de la plantilla de método , además Groovydel significado específico del script utilizado, para que pueda escribir su propio Groovyscript para satisfacer sus propias necesidades, al final También habrá una Gifimagen en movimiento para mostrar el método de uso específico, no hay mucho que decir, comenzar a presentar.

Crear plantilla

Haga clic primero File -> Settings -> Editor -> Live Templatesy aparecerá la siguiente interfaz:

imagen-20201022101321942

Luego debemos hacer clic +y seleccionar Template Group...:

imagen-20201022101455162

Luego elija cualquier nombre y haga clic en OK:

imagen-20201022101636732

Luego siga la imagen a continuación, primero seleccione el que acabamos de crear Group, luego haga clic +y seleccione Live Template:

imagen-20201022101834531

Luego, complete la información marcada en la figura en la interfaz emergente:

imagen-20201022102035375

1La posición en la imagen se usa de acuerdo con la tradición (creo que la mayoría de la gente solía configurarla de esta manera) *, y las correspondientes Template textson las siguientes:

**
 * description
$params$
 *
$return$
 * @author zjw
 * @createTime $date$ $time$
 */
Nota

Debe prestar especial atención aquí, Template textel comienzo del contenido no puede ser el /**comienzo, de lo contrario, habrá una situación en la que los parámetros y los valores de retorno estarán vacíos. Puede pensar que lo ha configurado de esta manera antes, pero no funciona, pero continúe leyendo Continúe, porque lo he encontrado antes, y lo que estoy aquí Template textes que coincida con el código del siguiente script, por lo que puede que no tenga el mismo aspecto.

Luego debe seguir los pasos en la figura a continuación para configurarlo Application Contexts, debe seleccionarlo Javay recordar hacer clic después de que termine Apply:

imagen-20201022103830214

Guión de ubicación

Después de completar los pasos anteriores, puede iniciar un script correspondiente a la configuración de acuerdo con el siguiente paso de la FIG, y 2, e 3ingresar los dos siguientes en cada Groovyscript (el significado del script se describe más adelante), 4y 5en el cuadro desplegable para seleccionar el sistema predeterminado :

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

groovyScript("def params=\"${_1}\";def index=params.lastIndexOf('.', params.indexOf('<'));if(index!=-1){params=params.substring(index+1);};index=params.indexOf('.');if(index!=-1&&params.indexOf('<')==-1){params=params.substring(index+1);};return ' * @return ' + params.replaceAll('java.lang.', '').replaceAll(',',', ');", methodReturnType())

imagen-20201022113313982

Después de completar una pequeña configuración, haga clic en OKy Applypara usar nuestra plantilla.

Prueba de uso de anotaciones

Antes de explicar el Groovysignificado del script anterior , veamos cómo usar la plantilla de anotación de la configuración anterior:
solo necesitamos ingresar el método que necesita agregar anotaciones /*y presionar Tabpara generarlo. Aquí *corresponde a la Abbreviationconfiguración anterior , *que es igual a utilizado *para reemplazar la configuración descrita anteriormente Template text, y Template textla adición de un frente /, agregamos con éxito a la plantilla de comentarios, correspondiente al Gifmovimiento de operación es el siguiente:

manifestación

demo1

Introducción al significado de la escritura

Tome el $return$guión establecido como ejemplo. Para facilitar la explicación, el guión está formateado. El código y su significado son directamente los siguientes, Groovyy Javala sintaxis es muy similar, por lo que no es difícil de entender:

groovyScript("
        // 将 methodReturnType() 的返回值转化为字符串赋给 params
        // 默认的返回值格式为 pojo.User / java.lang.int 等形式
        def params = \"${
    
    _1}\";
        
        // 如果返回值有集合时,原始形式为 java.util.List<java.lang.Integer> 这种形式
        // 这里获取 '<' 前的 '.' 下标
        def index = params.lastIndexOf('.', params.indexOf('<'));
        
        if (index != -1) {
    
    
            // 执行到这里说明返回值有泛型,为了看着更舒服
            // 这里的作用是把 java.util.List<java.lang.Integer> 变为 List<java.lang.Integer>
            params = params.substring(index + 1);
        };
        
        // 这里继续获取 '.' 的下标
        index = params.indexOf('.');
        
        // 如果 '.' 存在,且不存在 '<' 说明返回值没有泛型
        if (index != -1 && params.indexOf('<') == -1) {
    
    
            // 把返回值为 pojo.User 这种变为 User
            params = params.substring(index + 1);
        };
        
        // 当返回值为基本类型时,都会有 'java.lang.' 前缀
        // 例如 java.lang.int ,这里去掉了 java.lang.
        // 此外将返回结果中的 ','替换为', '是为了处理 有多个泛型参数的情况
        // 例如原始返回值可能为 java.util.Map<java.lang.Integer,java.lang.String>
        // 这里为了让泛型之间的 ',' 变成 ', ' 更加美观
        // 需要注意的是,我没有处理 java.util.List<pojo.User> 这种情况
        // 经过这些代码只会变为 List<pojo.User>, 这个就留给大家自己做了
        return ' * @return ' + params.replaceAll('java.lang.', '').replaceAll(',', ', ');
    ",
    methodReturnType()
)

Nota

Aquí solo muestro returntodo el significado del código de secuencia de comandos procesado . El código también es un poco feo, así que todavía espero que puedas escribir tus propias Grovvysecuencias de comandos y compartirlas. Como mi paramsecuencia de comandos es demasiado fea, no lo haré aquí. Explicado, si tienes alguna duda, también puedes dejar un mensaje.

para resumir

Este artículo explica IDEAalgunos de los problemas que pueden surgir al utilizar los comentarios de la plantilla de métodos personalizados generados. Por supuesto, es posible que aún encuentre algunos problemas debido a algunas razones de versión o razones operativas. También puede dejar un mensaje y discutir juntos.

Supongo que te gusta

Origin blog.csdn.net/qq_41698074/article/details/109252069
Recomendado
Clasificación