Entrada
Hoy quiero dar una pequeña descripción general-tutorial de plantillas en la WBS de Jetbrains. Los siguientes ejemplos se implementarán en Java en Intellij IDEA, pero el mecanismo de creación es el mismo para otros idiomas y productos de la empresa. Creo que todos los programadores en este IDE usaron las plantillas integradas. Por ejemplo, cuando escribe fori, presione TAB o ENTRAR y obtiene un bucle for en el que necesita especificar el nombre y la condición de la variable, y el resto del código se genera para usted.
for (int i = 0; i < ; i++) { }
O sout -> System.out.println (), familiar para todos los programadores de Java. Entonces, Intellij tiene soporte para crear sus propias plantillas de código. Sorprendentemente, no encontré casi ninguna información en ruso y bastante inglés (ya que hay buena
documentación ) cuando encontré esta característica, aunque se acelera mucho y ayuda en el desarrollo. Y ahora, cuando llegaron, decidí escribir un breve artículo al respecto. Tal vez ayude a los programadores poco experimentados, ellos mismos podrán resolver todo o lo han estado usando durante mucho tiempo, pero creo que es bastante adecuado para todos los demás. Entonces comencemos.
Crear plantilla
Para comenzar, hagamos un ejemplo simple, por ejemplo, la constante del registrador. Vaya a
Configuración -> Editor -> Plantillas en vivo . Aquí puede ver grupos de plantillas listas para usar y crear las suyas propias haciendo clic en el signo más en la parte derecha del panel. También puede crear una plantilla separada, luego se agregará al grupo de usuarios. Después de hacer clic, aparecerá una ventana a continuación, en la que debe ingresar la abreviatura, las descripciones y el texto real de la plantilla. También habrá una inscripción de advertencia "
Sin contexto aplicable " y el botón
Definir al lado, haciendo clic en el cual veremos una lista de posibles contextos: HTML, XML, Java, Javascript, CSS, etc. Algunos tienen subelementos, por ejemplo, en Java es la capacidad de usar la plantilla en un método, en un comentario, a nivel de clase, en otro lugar o en todas partes a la vez. Tomemos todo el paquete de Java como ejemplo.
Escribiremos log como abreviatura, aquí hay una línea como esta como prueba:
private static final Logger LOGGER = Logger.getLogger($CLASS_NAME$.class.getName());
Luego, haga clic en el botón que está en el lado derecho -
Editar variables . En la ventana que se abre, vemos una tabla con un registro: CLASS_NAME, que corresponde a la variable que especificamos en el texto del archivo como el nombre de la clase. Tiene los campos
Expresión ,
Valor predeterminado ,
Omitir si está definido . El primer campo es una selección en la que se nos ofrecen todo tipo de valores que se pueden sustituir. El segundo es solo una línea en la que podemos escribir cualquier cosa al citarlo. Bueno, el tercer campo nos ofrece omitir la edición de la variable si se especifica en una de las primeras propiedades. En nuestro caso, necesitamos el valor de
className () seleccionado del campo
Expresión . Si lo desea, puede seleccionar el pase de edición. Haga clic en
Aceptar , después de
Aplicar y puede verificar. Creamos una clase con cualquier nombre, escribimos dentro del registro, presionamos
TAB y listo, tenemos un registrador que en lugar de CLASS_NAME tiene el nombre de la clase actual.
Un ejemplo:
public class CodeTemplates { private static final Logger LOGGER = Logger.getLogger(CodeTemplates.class.getName()); }
Características y características:
1. Al crear plantillas, hay una variable clave
$ END $ que indica dónde estará el cursor cuando cree la plantilla (de forma predeterminada, al final del código de la plantilla).
System.out.println($END$);
2. La segunda variable clave es
$ SELECTION $ . Si está presente en su plantilla, aparecerá en el menú
Surround con (
Ctrl + Alt + T ). Esto es necesario si desea ajustar su código.
System.out.println("$SELECTION$");
Digamos que tiene una palabra u oración, por ejemplo PRUEBA: coloca el cursor al final de la palabra, presiona Ctrl + Alt + T y entre las plantillas puede elegir la suya, y luego resulta:
System.out.println("TEST");
PD: para un bloque de código o texto, solo selecciónalo primero.
3. Algunas de las extensiones en Extensiones pueden tomar varios tipos de valores como argumentos, incluidas otras extensiones. Para hacerlo más claro, daré un ejemplo. Quizás muchos estén familiarizados con la anotación de la
tabla JPA, en la que, entre otras cosas, puede pasar el nombre de la tabla correspondiente a esta clase (entidad). Por lo general, los nombres de tabla y clase son los mismos, con la única diferencia de que className se convierte en CLASS_NAME. La plantilla para crear esta anotación será algo como esto:
@Table(name = "$TABLE NAME$")
En Extensiones, seleccione
capitalizeAndUnderscore (String) , solo que en lugar de String, nosotros mismos prescribimos className:
capitalizeAndUnderscore(className)
Un ejemplo:
@Table(name = "CODE_TEMPLATES") public class CodeTemplates { ... }
PD:También puede escribir sus propios valores en la selección del campo Extensiones, como en la entrada, pero no veo el punto, porque puede hacerlo en el campo Valor predeterminado.
4. También es posible importar (
Archivo -> Importar configuración ) y exportar (
Archivo -> Exportar configuración ) plantillas y otras configuraciones en forma de archivos jar. Dado que las plantillas se exportan como archivos xml, opcionalmente puede ir al directorio .IntelliJIdea $ VERSION $ / config / templates y agregar su xml allí. En este caso, debe especificar un grupo de plantillas en el archivo, de lo contrario no las verá en la lista. Si no especifica un grupo, se pueden agregar plantillas individuales a uno de los archivos existentes, como una opción: user.xml.
Ejemplo user.xml con logger y
Table :
<templateSet group="user"> <template name="log" value="private static final Logger LOGGER = Logger.getLogger($CLASS_NAME$.class.getName());" description="Logger Template" toReformat="false" toShortenFQNames="true"> <variable name="CLASS_NAME" expression="className()" defaultValue="" alwaysStopAt="true" /> <context> <option name="JAVA_DECLARATION" value="true" /> </context> </template> <template name="tb" value="@Table(name = "$TABLE_NAME$")" description="" toReformat="false" toShortenFQNames="true"> <variable name="TABLE_NAME" expression="capitalizeAndUnderscore(className)" defaultValue="" alwaysStopAt="true" /> <context> <option name="JAVA_CODE" value="true" /> </context> </template> </templateSet>
Conclusión
Espero que el artículo de hoy sea útil y ayude a acelerar el desarrollo de aquellos que aún no han usado sus plantillas.
PD: si lo desea, puede escribir sus propios complementos para el IDE, incluidas las extensiones para plantillas.
Las correcciones o adiciones son bienvenidas.
Enlace a la documentación oficial:
AQUÍGracias
justboris