Plantilla Intellij Live


81

¿Hay alguna forma de usar un valor de token predeterminado en Intellij? Live templates ? Por ejemplo, tengo la siguiente plantilla en vivo que declara una variable privada que me gustaría crear casi para cada clase:

private static final Logger logger = Logger.getLogger($CLASS$.class)

Parece innecesario escribir $CLASS$cada vez que se usa esta plantilla en vivo, porque puede derivarse de la clase en el alcance o el nombre de archivo. Me preguntaba si es posible usar tokens definidos por el entorno en plantillas en vivo como valores predeterminados.

Respuestas:



54

log4j:

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

slf4j:

private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger($CLASS_NAME$.class);

Asegúrese de establecer el contexto aplicable a Java y de acortar los nombres de FQ y omitir si están definidos están habilitados.


3
Me gusta la adición que menciona este artículo para configurar una expresión para completar la variable con un valor predeterminado razonable. coderwall.com/p/hzmhbw
Snekse

@Snekse Esa es una buena adición. Le invitamos a mejorar mi respuesta editándola.
Nowaker

Esta respuesta en realidad no responde a la pregunta del interrogador: para autocompletar la $CLASS_NAME$variable con el nombre de la clase, debe establecer la "Expresión" asociada a la $CLASS_NAME$variable className(). Vea la respuesta de CrazyCoder para una captura de pantalla.
Adil Hussain

3

log4j 2:

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

Esta respuesta en realidad no responde a la pregunta del interrogador: para autocompletar la $CLASS_NAME$variable con el nombre de la clase, debe establecer la "Expresión" asociada a la $CLASS_NAME$variable className(). Vea la respuesta de CrazyCoder para una captura de pantalla.
Adil Hussain
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.