2013-02-09 6 views
10

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?

+0

Vielleicht etwas wie [JIndent] (http://www.jindent.com/) – millimoose

+0

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

+0

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

Antwort

4

Wenn Sie den Eclipse-Formatierer aus Ihrem eigenen Java-Code verwenden möchten, schlage ich vor, dass Sie sich die maven java formatter plugin ansehen.

Es ist ein Maven-Plugin, das verwendet werden kann, um Quellcode basierend auf Eclipse-Code-Formatierungseinstellungen zu formatieren.

Wenn Sie nicht wollen, Maven verwenden, aber die Formatierung Code in Ihren eigenen Code, werfen Sie einen Blick auf die FormatterMojo einbetten möchten. Es enthält den Code, der den Eclipse-Code-Formatierer startet (unter Verwendung der Eclipse-Bibliotheken)

Es ist alles kostenlos und Open-Source.

+0

Ich werde es auf jeden Fall überprüfen. Scheint ziemlich einfach :) – verhage

+0

Wenn Sie die Antwort mögen, vergessen Sie nicht, es zu akzeptieren :) – ddewaele

+0

Leider ist die Formatierung nicht ganz das gleiche wie Eclipse es tun würde. Ich habe Fälle, in denen die Einrückung anders ist, obwohl sowohl Eclipse als auch das Formatierer-Maven-Plugin dieselbe Konfiguration verwenden. – MrSmith42

Verwandte Themen