Intellij Live-Vorlage

81

Gibt es eine Möglichkeit, einen Standard-Token-Wert in Intellij zu verwenden Live templates? Zum Beispiel habe ich die folgende Live-Vorlage, die eine private Variable deklariert, die ich fast für jede Klasse erstellen möchte:

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

Es scheint nicht notwendig zu sein, $CLASS$jedes Mal einzugeben, wenn diese Live-Vorlage verwendet wird, da sie von der Klasse in Bereich oder Dateiname abgeleitet werden kann. Ich habe mich gefragt, ob es möglich ist, umgebungsdefinierte Token in Live-Vorlagen als Standard zu verwenden.

Leonid
quelle

Antworten:

114

Überprüfen Sie einige andere Vorlagen, die bereits den aktuellen Klassennamen verwenden:

Geben Sie hier die Bildbeschreibung ein

CrazyCoder
quelle
3
Danke, wo sind alle verfügbaren Ausdrücke definiert?
Leonid
Alle Ausdrücke sind hier aufgelistet: jetbrains.com/help/idea/template-variables.html
Brad
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);

Stellen Sie sicher, dass Sie den entsprechenden Kontext auf Java festlegen und die FQ-Namen verkürzen und überspringen, falls definiert, aktiviert sind.

Nowaker
quelle
3
Ich mag den Zusatz, den dieser Artikel zum Einrichten von en expression erwähnt, um die Variable mit einem sinnvollen Standard zu füllen. coderwall.com/p/hzmhbw
Snekse
@Snekse Das ist eine gute Ergänzung. Sie können meine Antwort gerne verbessern, indem Sie sie bearbeiten.
Nowaker
Diese Antwort beantwortet die Frage des Fragestellers nicht wirklich: Um die $CLASS_NAME$Variable automatisch mit dem Klassennamen zu füllen , müssen Sie den "Ausdruck" festlegen, der der $CLASS_NAME$Variablen zugeordnet ist className(). Einen Screenshot finden Sie in der Antwort von CrazyCoder.
Adil Hussain
3

log4j 2:

private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger($CLASS_NAME$.class);
bruno.do.amaral
quelle
Diese Antwort beantwortet die Frage des Fragestellers nicht wirklich: Um die $CLASS_NAME$Variable automatisch mit dem Klassennamen zu füllen , müssen Sie den "Ausdruck" festlegen, der der $CLASS_NAME$Variablen zugeordnet ist className(). Einen Screenshot finden Sie in der Antwort von CrazyCoder.
Adil Hussain