最近我編寫了一些工具,可以幫助我生成Java代碼,否則這些工作將是漫長而乏味的任務。我使用freemarker編寫模板。但是,模板中的所有空白都保留在輸出中,導致代碼非常混亂。我可以從我的模板中刪除縮進來解決這個問題,但這使我的模板變得難以維護。從自己的程序中使用Eclipse代碼格式化程序
考慮這個簡單的例子模板:
public class MyTestClass
{
<#list properties as p>
private String ${p.name};
</#list>
}
我的模板格式良好的,但我的代碼出來,因爲這:
public class MyTestClass
{
private String prop1;
private String prop2;
private String prop3;
}
縮進是有點過分,它應該是:
public class MyTestClass
{
private String prop1;
private String prop2;
private String prop3;
}
要做到這一點,我必須從我的模板中刪除縮進,如下所示:
public class MyTestClass
{
<#list properties as p>
private String ${p.name};
</#list>
}
對於這個簡單的情況下,它是不是真的從我的模板中刪除縮進一個問題,但你能想象複雜的模板變得相當不可讀。
在一方面,我真的希望我的代碼能夠很好地格式化,但另一方面,我希望我的模板也能很好地格式化。我使用Eclipse作爲IDE,內置格式化程序完全根據我(和我的團隊)的意願進行了定製。如果我能以某種方式從freemarker模板生成代碼,並將其作爲後處理步驟格式化爲使用Eclipse格式化程序的輸出格式,那將是非常好的。
我當然可以在生成我的代碼後手動運行格式化程序,但我真的想自動執行此過程。
因此,長話短說,沒有人知道我可以在我自己的Java代碼中使用Eclipse的代碼格式化程序嗎?
也許使用類似於[JIndent](http://www.jindent.com/) – millimoose 2013-02-09 12:48:09
看起來很有希望,它列出了一個開放的API作爲其功能。但是,我個人認爲它的許可證對我的目的來說太貴了。 – verhage 2013-02-09 13:06:41
適合自己,但我並不同意,在一項每月支付至少一個數量級的工作中使用幾年的工具約爲100美元「太貴」。 – millimoose 2013-02-09 13:09:15