【发布时间】:2013-01-25 03:25:55
【问题描述】:
最近,我编写了一些工具来帮助我生成 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;
}
为此,我必须像这样从模板中删除缩进:
public class MyTestClass
{
<#list properties as p>
private String ${p.name};
</#list>
}
对于这种简单的情况,从我的模板中删除缩进并不是真正的问题,但您可以想象复杂的模板变得非常难以阅读。
一方面我真的希望我的代码格式很好,但另一方面我也希望我的模板格式也很好。我使用 Eclipse 作为 IDE,内置格式化程序完全按照我(和我的团队)的意愿定制。如果我能以某种方式从 freemarker 模板生成代码并作为后处理步骤使用 Eclipse 的格式化程序格式化其输出,那就太好了。
我当然可以在生成代码后手动运行格式化程序,但我真的很想自动化这个过程。
那么,长话短说,有谁知道我如何在我自己的 Java 代码中使用 Eclipse 的代码格式化程序?
【问题讨论】:
-
也许使用类似JIndent
-
看起来很有希望,它列出了一个开放的 API 作为它的特性。但是,就我个人而言,我觉得它的许可证有点太贵了。
-
适合你自己,但我不同意,你可以使用 100 美元购买一个工具,你将在一份每月至少多支付一个数量级的工作中使用几年是“太贵了"。
标签: java eclipse freemarker code-formatting