最近我编写了一些工具,可以帮助我生成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