2011-05-23 20 views
69

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

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 alcance o nombre de archivo. Me preguntaba si es posible usar tokens definidos por el entorno en plantillas en vivo como valores predeterminados.

Respuesta

97

Comprobar algunas otras plantillas que ya utilizan el nombre de clase actual:

enter image description here

+3

Gracias, donde se definen todas las expresiones disponibles? – Leonid

+6

http://www.jetbrains.com/idea/webhelp/edit-template-variables-dialog.html – CrazyCoder

53

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 que se establece la contexto aplicable a Java y acortar los nombres de FQ y omitir si está habilitado.

+3

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

+0

@Snekse Eso es una buena adición. Puede mejorar mi respuesta editándola. – Nowaker

+0

Esta respuesta en realidad no responde a la pregunta del interrogador: para completar automáticamente la variable '$ CLASS_NAME $' con el nombre de clase, debe configurar la "Expresión" asociada a la variable '$ CLASS_NAME $' para que sea 'className() '. Vea la respuesta de CrazyCoder para una captura de pantalla. –

3

log4j 2:

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

Esta respuesta en realidad no responde a la pregunta del interrogador: para completar automáticamente la variable '$ CLASS_NAME $' con el nombre de clase, debe configurar la "Expresión" asociada a la variable '$ CLASS_NAME $' para que sea 'className() '. Vea la respuesta de CrazyCoder para una captura de pantalla. –