Una poderosa herramienta de generación de código en IDEA

Autor | Sharehub

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

Prefacio

El proceso de desarrollo de Java a menudo necesita escribir código con un formato fijo, como declarar una variable privada, registrador o bean, etc. Para esta generación de código a pequeña escala, podemos usar la función Live Templates proporcionada por IDEA. Al principio pensé que era solo un fragmento de código simple, pero luego descubrí que admite la configuración de funciones variables y puede admitir una generación de código muy compleja.

Permítanme presentarles el uso de Live Templates.

Uso básico

IDEA viene con muchas plantillas dinámicas de uso común, ingrese fori en el código Java y aparecerá el retorno de carro

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

}


Presione Tab para saltar a cada espacio en blanco y complete el valor manualmente.

Plantilla personalizada

Después de todo, las plantillas integradas oficiales no pueden satisfacer las necesidades de nuestro estilo de codificación personal. Live Templates proporciona funciones variables para que las personalicemos.

Uso simple

Para agregar una plantilla personalizada, primero debe completar la palabra desencadenante (es decir, abreviatura), la descripción es opcional, y luego definir el contexto de la plantilla, haga clic en definir para seleccionar Java, de modo que la plantilla actual se active al editar Java. Una vez definido el contexto, puede completar la plantilla.

Aquí hay algunas plantillas simples que uso comúnmente

==========
<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$
}
==========

La plantilla admite la definición de variables, utilizando $$caracteres encerrados para representar una variable. $END$Es una variable predefinida especial que indica la posición donde el cursor salta por última vez. La posición de cada variable se puede saltar.

Uso avanzado

Si ha utilizado el complemento Code Sinppet de vim, encontrará que las funciones se pueden ejecutar en la plantilla. Por supuesto, las poderosas Live Templates también lo admiten, e IDEA puede percibir la semántica del código, como los parámetros del función editada actualmente. Pero esto nos permitirá jugar. Estudiemos la función de las funciones de la plantilla de fácil a difícil.

Las variables que mencionamos anteriormente se pueden vincular a funciones, y el método de configuración se muestra en la figura anterior.

Declare variables rápidamente

La declaración de variables es una operación común, especialmente cuando necesitas declarar variables que necesitan ser anotadas.Cuando comentas, estos códigos son muy aburridos de escribir. Aquí está la plantilla que definí:

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

A primera vista, esta plantilla se ve similar a privateField que definí anteriormente, la única diferencia es que vinculo funciones a estas variables.

  • portapapeles (): devuelve la cadena del portapapeles actual

  • descapitalizar (): cambia la primera letra de la cadena de entrada a minúsculas

Hagamos una demostración a continuación, primero copiamos el nombre de la clase actual y luego ingresamos osgiRef

Declarar registrador rápidamente

Declarar logger también es una operación común. Anteriormente usamos la función de pegar para declarar variables rápidamente. Ahora usaremos otra función className (). Como sugiere el nombre, su función es devolver el nombre de clase actual.

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

El groovyScript () más poderoso

Si las funciones utilizadas anteriormente proporcionan capacidades limitadas y no son lo suficientemente flexibles, entonces groovyScript () proporciona todas las capacidades que desea. Admite la ejecución de scripts Groovy para procesar la entrada y luego generar la cadena procesada.

groovyScript("code", ...)

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

Echemos un vistazo a su aplicación práctica.

Configuración rápida de frijoles

Para agregar un nuevo servicio, debe registrar un bean en Spring. Generalmente, esta configuración no es más que especificar el id y la clase. Como estamos configurando en xml, no podemos usar la función className (), pero podemos usar el portapapeles () para obtenerlo. Para obtener la referencia completa de la clase, en IDEA, directamente hacemos clic derecho en el nombre de la clase y hacemos clic en Copiar referencia. Luego ejecute el script maravilloso para obtener el nombre de la clase.

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

id enlace decapitalize(groovyScript("_1.tokenize('.')[-1]", clipboard())), primero tome clipboard()el valor para obtener la referencia completa de la clase, y luego ejecute el código maravilloso _1.tokenize('.')[-1](presione. para dividir en una matriz de cadenas, luego tome el último para obtener el nombre de la clase, y luego use decapitalize()minúsculas la primera letra para obtener la identificación.

Imprima rápidamente la información del contexto actual

Al imprimir el registro de errores, es necesario imprimir la información del contexto actual, como los parámetros de entrada. A veces, cuando hay muchos parámetros, es difícil escribirlos. Afortunadamente, existe una función de plantilla methodParameters (), que devuelve un lista de los parámetros de la función actual. Por supuesto, no se puede utilizar directamente, se debe convertir con groovyScript.

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

La vinculación de parámetros a groovyScript("'\"' + _1.collect { it + ' = [\" + ' + it + ' + \"]'}.join(', ') + '\"'", methodParameters())él formateará y generará automáticamente los parámetros de la función actual.

para resumir

Anteriormente presentamos brevemente las funciones de plantilla más utilizadas. De hecho, IDEA tiene muchas otras funciones de plantilla. Para obtener más detalles, consulte Creación y edición de variables de plantilla.

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

IDEA es una herramienta muy poderosa. El buen uso de las herramientas puede mejorar enormemente la eficiencia del trabajo y dedicar energía a cosas clave en lugar de perder tiempo escribiendo código repetitivo. Aún quedan por descubrir algunos usos más avanzados. Finalmente, promocioné una ola de complementos de generación de código CodeMaker que escribí, y hacer un buen uso de ellos puede ahorrar mucho tiempo para la escritura repetitiva de código.

PD: Además, el editor ha establecido un grupo de intercambio de aprendizaje, que está prohibido promover. El ambiente en el grupo es muy bueno. Si tiene alguna pregunta, también puede hacer preguntas en el grupo. Los amigos que lo necesiten pueden agregarlo ~

Modo de grupo plus: escaneando la parte inferior ???? autor del código bidimensional, notas: grupo plus

Amigos a los que les gusta este artículo, hagan clic en la imagen para seguir la cuenta de suscripción y ver más contenido emocionante.

Lectura recomendada:

Haga clic para ver y luego ir!

Supongo que te gusta

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