最近,我编写了一些工具,以帮助我为那些本来会很冗长和乏味的任务生成Java代码。我使用Freemarker编写模板。然而,模板中的所有空格都保留在输出中,导致代码非常混乱。我可以从模板中删除缩进来解决这个问题,但这会让我的模板难以维护。
考虑这个简单的示例模板:
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;
}
为了实现这一目标,我必须从我的模板中删除缩进,就像这样: To accomplish this, I have to remove indentation from my template like this:
public class MyTestClass
{
<#list properties as p>
private String ${p.name};
</#list>
}
对于这个简单的情况,从我的模板中删除缩进并不是真正的问题,但你可以想象复杂的模板变得相当难以阅读。
一方面,我真的希望我的代码格式良好,但另一方面,我也希望我的模板格式良好。我使用的IDE是Eclipse,并且内置格式化程序已完全按照我的(和我的团队的)愿望进行自定义。如果我可以从freemarker模板生成代码并将其输出与Eclipse的格式化程序一起进行后处理,那将是极好的。
当然,我可以在生成代码后手动运行格式化程序,但我真的想自动化这个过程。
长话短说,有没有人知道我如何在自己的Java代码中使用Eclipse的代码格式化程序?