Erstellen von Vorlagen in der Jetbrains-IDE

Eintrag


Heute möchte ich eine kleine Übersicht über die Vorlagen im PSP von Jetbrains geben. Die folgenden Beispiele werden in Java in Intellij IDEA implementiert, der Erstellungsmechanismus ist jedoch für andere Sprachen und Produkte des Unternehmens identisch. Ich denke, alle Programmierer in dieser IDE haben die integrierten Vorlagen verwendet. Wenn Sie beispielsweise fori schreiben, drücken Sie TAB oder ENTER und Sie erhalten eine for-Schleife, in der Sie den Variablennamen und die Bedingung angeben müssen, und der Rest des Codes wird für Sie generiert.

for (int i = 0; i < ; i++) { } 

Oder Sout -> System.out.println (), das allen Java-Programmierern bekannt ist. Intellij unterstützt daher das Erstellen eigener Codevorlagen. Überraschenderweise fand ich fast keine Informationen auf Russisch und ziemlich viel Englisch (da es eine gute Dokumentation gibt ), als ich auf diese Funktion stieß, obwohl sie sich sehr beschleunigt und bei der Entwicklung hilft. Und jetzt, als sie herumkamen, beschloss ich, einen kurzen Artikel darüber zu schreiben. Vielleicht hilft es kleinen erfahrenen Programmierern, sie selbst können alles herausfinden oder haben es schon lange benutzt, aber ich denke, es ist für alle anderen gut geeignet. Also fangen wir an.

Vorlage erstellen


Lassen Sie uns zunächst ein einfaches Beispiel erstellen, beispielsweise die Logger-Konstante. Gehen Sie zu Einstellungen -> Editor -> Live-Vorlagen . Hier können Sie vorgefertigte Gruppen von Vorlagen anzeigen und eigene erstellen - indem Sie auf das Pluszeichen im rechten Teil des Bedienfelds klicken. Sie können auch eine separate Vorlage erstellen, die dann der Benutzergruppe hinzugefügt wird. Nach dem Klicken wird unten ein Fenster angezeigt, in das Sie die Abkürzung, Beschreibungen und den tatsächlichen Text der Vorlage eingeben müssen. Es wird auch eine Warnbeschriftung " Kein zutreffender Kontext " und die Schaltfläche " Definieren" daneben angezeigt, auf die eine Liste möglicher Kontexte angezeigt wird - HTML, XML, Java, Javascript, CSS usw. Einige haben Unterelemente, zum Beispiel in Java ist es die Möglichkeit, die Vorlage in einer Methode, in einem Kommentar, auf Klassenebene, irgendwo anders oder überall gleichzeitig zu verwenden. Nehmen wir als Beispiel das gesamte Java-Paket.

Wir schreiben log als Abkürzung. Hier ist eine Zeile wie diese als Test:

 private static final Logger LOGGER = Logger.getLogger($CLASS_NAME$.class.getName()); 

Klicken Sie anschließend auf die Schaltfläche auf der rechten Seite - Variablen bearbeiten . In dem sich öffnenden Fenster sehen wir eine Tabelle mit einem Datensatz - CLASS_NAME, der der Variablen entspricht, die wir im Text der Datei als Klassennamen angegeben haben. Es enthält die Felder Ausdruck , Standardwert , Überspringen, falls definiert . Das erste Feld ist eine Auswahl, in der uns alle Arten von Werten angeboten werden, die ersetzt werden können. Die zweite ist nur eine Zeile, in die wir alles schreiben können, indem wir es zitieren. Nun, das dritte Feld bietet uns die Möglichkeit, die Bearbeitung der Variablen zu überspringen, wenn sie in einer der ersten Eigenschaften angegeben ist. In unserem Fall benötigen wir den Wert von className (), der aus dem Feld Ausdruck ausgewählt wird. Falls gewünscht, können Sie den Bearbeitungsdurchlauf auswählen. Klicken Sie nach Übernehmen auf OK , und Sie können dies überprüfen. Wir erstellen eine Klasse mit einem beliebigen Namen, schreiben in das Protokoll, drücken TAB und voila - wir haben einen Logger, der anstelle von CLASS_NAME den Namen der aktuellen Klasse hat.

Ein Beispiel:

 public class CodeTemplates { private static final Logger LOGGER = Logger.getLogger(CodeTemplates.class.getName()); } 

Merkmale und Merkmale:


1. Beim Erstellen von Vorlagen gibt es eine Schlüsselvariable $ END $, die angibt, wo sich der Cursor beim Erstellen der Vorlage befindet (standardmäßig am Ende des Vorlagencodes).

 System.out.println($END$); 

2. Die zweite Schlüsselvariable ist $ SELECTION $ . Wenn es in Ihrer Vorlage vorhanden ist, wird es im Menü Surround With ( Strg + Alt + T ) angezeigt . Dies ist erforderlich, wenn Sie Ihren Code umbrechen möchten.

 System.out.println("$SELECTION$"); 

Angenommen, Sie haben ein Wort oder einen Satz, zum Beispiel TEST - Sie setzen den Cursor an das Ende des Wortes, drücken Strg + Alt + T und unter den Vorlagen können Sie Ihre eigenen auswählen, und dann stellt sich heraus:

 System.out.println("TEST"); 

PS: Wählen Sie einen Code- oder Textblock zuerst aus.

3. Einige der Erweiterungen in Erweiterungen können verschiedene Arten von Werten als Argumente verwenden, einschließlich anderer Erweiterungen. Um es klarer zu machen, werde ich ein Beispiel geben. Vielleicht sind viele mit der JPA- Tabellenanmerkung vertraut, in die Sie unter anderem den Namen der Tabelle übergeben können, die dieser Klasse (Entität) entspricht. Normalerweise sind die Tabellen- und Klassennamen identisch, mit dem einzigen Unterschied, dass className zu CLASS_NAME wird. Die Vorlage zum Erstellen dieser Anmerkung sieht ungefähr so ​​aus:

 @Table(name = "$TABLE NAME$") 

Wählen Sie in Extentions die Option capitalizeAndUnderscore (String) aus . Nur anstelle von String schreiben wir selbst className vor:

capitalizeAndUnderscore(className)

Ein Beispiel:

 @Table(name = "CODE_TEMPLATES") public class CodeTemplates { ... } 

PS:
Sie können auch Ihre eigenen Werte in die Feldauswahl "Erweiterungen" schreiben, wie in der Eingabe, aber ich sehe den Punkt nicht, da Sie dies im Feld "Standardwert" tun können.

4. Es ist auch möglich, Vorlagen und andere Einstellungen in Form von JAR-Dateien zu importieren ( Datei -> Importeinstellungen ) und zu exportieren ( Datei -> Exporteinstellungen ). Da die Vorlagen als XML-Dateien exportiert werden, können Sie optional in das Verzeichnis .IntelliJIdea $ VERSION $ / config / templates wechseln und dort Ihre XML-Datei hinzufügen. In diesem Fall müssen Sie eine Gruppe von Vorlagen in der Datei angeben, andernfalls werden sie nicht in der Liste angezeigt. Wenn Sie keine Gruppe angeben, können einzelne Vorlagen optional zu einer der vorhandenen Dateien hinzugefügt werden - user.xml.
Beispiel user.xml mit Logger und Tabelle :
 <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> 


Fazit


Ich hoffe, der heutige Artikel wird nützlich sein und dazu beitragen, die Entwicklung derjenigen zu beschleunigen, die ihre Vorlagen noch nicht verwendet haben.

PS: Wenn Sie möchten, können Sie Ihre eigenen Plugins für die IDE schreiben, einschließlich Erweiterungen für Vorlagen.

Korrekturen oder Ergänzungen sind willkommen.

Link zur offiziellen Dokumentation: HIER
Danke, Justboris

Source: https://habr.com/ru/post/de414813/


All Articles