Kürzlich schrieb ich einige Tools, die mir helfen, Java-Code für was sonst lange und langwierige Aufgaben zu generieren. Ich benutze Freemarker um Templates zu schreiben. Alle Leerzeichen in den Vorlagen bleiben jedoch in der Ausgabe erhalten, was zu ziemlich unordentlichem Code führt. Ich könnte den Einzug aus meinen Vorlagen entfernen, um dies zu beheben, aber das macht meine Vorlagen eher unhaltbar.Verwenden des Eclipse-Code-Formatierer aus dem eigenen Programm
diese einfache Beispielvorlage vor:
public class MyTestClass
{
<#list properties as p>
private String ${p.name};
</#list>
}
Meine Vorlage schön formatiert ist, aber mein Code kommt wie folgt aus:
public class MyTestClass
{
private String prop1;
private String prop2;
private String prop3;
}
Einrückungen ist ein bisschen zu viel, sollte es sein:
public class MyTestClass
{
private String prop1;
private String prop2;
private String prop3;
}
Um dies zu erreichen, muss ich Einzug aus meiner Vorlage wie folgt entfernen:
Für diesen einfachen Fall ist es nicht wirklich ein Problem, Einrückung aus meiner Vorlage zu entfernen, aber Sie könnten sich vorstellen, dass komplexe Vorlagen ziemlich unlesbar werden.
Auf der einen Seite möchte ich wirklich, dass mein Code schön formatiert ist, aber auf der anderen Seite möchte ich, dass meine Vorlagen auch schön formatiert sind. Ich benutze Eclipse als IDE, mit eingebautem Formatierer, der vollständig an die Wünsche meines (und meines Teams) angepasst ist. Es wäre toll, wenn ich irgendwie Code aus Freemarker-Templates generieren und als Post-Processing-Schritt seine Ausgabe mit dem Formatierer von Eclipse formatieren könnte.
Ich kann natürlich den Formatierer manuell nach dem Generieren meines Codes ausführen, aber ich möchte diesen Prozess wirklich automatisieren.
Kurz gesagt, weiß jemand, wie ich Eclipse Codeformatierer in meinem eigenen Java-Code verwenden kann?
Vielleicht etwas wie [JIndent] (http://www.jindent.com/) – millimoose
Sieht vielversprechend aus, es listet eine offene API als seine Funktionen auf. Allerdings finde ich persönlich die Lizenz etwas zu teuer für meinen Zweck. – verhage
Passen Sie sich, aber ich stimme nicht zu, dass ~ 100 $ für ein Werkzeug, das Sie für ein paar Jahre in einem Job verwenden, der jeden Monat mindestens eine Größenordnung mehr zahlt, "zu teuer" ist. – millimoose