template intellij idea created create code change intellij-idea code-templates

created - Creando nuevas plantillas en vivo con declaraciones de importación en IntelliJ IDEA



javadoc template intellij (3)

Aquí está la plantilla de Eclipse que quiero portar:

${:import(org.apache.log4j.Logger)} private static final Logger LOG = Logger.getLogger(${enclosing_type}.class);

Mi versión actual en IDEA es la siguiente:

private static final Logger LOG = Logger.getLogger($CLASS_NAME$.class);$END$

donde $CLASS_NAME$ está configurado para usar className() como su expresión.

Desafortunadamente, no encuentro ninguna documentación sobre cómo agregar la declaración de importación. ¿Hay algo equivalente a Eclipse ${:import(...)} ?


Para el uso de registro de apache commons:

private static final org.apache.commons.logging.Log LOG = org.apache.commons.logging.LogFactory.getLog($CLASS_NAME$.class);$END$


Según esta publicación , parece estar destinado a utilizar solo expresiones completas. Lo probé y esto me funcionó:

private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger($CLASS_NAME$.class);$END$

IDEA lo acorta automáticamente y agrega las instrucciones de importación necesarias:

import org.apache.log4j.Logger; // ... private static final Logger LOG = Logger.getLogger(MyClass.class);


Solo para ahorrar un poco de tiempo para los nuevos visitantes aquí: la respuesta aceptada ahora necesita algunos cambios.
Vaya a Settings -> Editor -> Live Templates , seleccione others , agregue una plantilla:

private static final org.apache.logging.log4j.Logger logger = org.apache.logging.log4j.LogManager.getLogger($CLASS_NAME$.class);$END$

Luego, presione Edit Variables a la izquierda y establezca la expresión para CLASS_NAME en className() .
Después de todo, establezca el contexto en la parte inferior de Java -> Declaration (y Groovy -> Declaration si lo desea). Las importaciones serán generadas mágicamente en el inserto.