使用自己程序中的Eclipse代码格式化程序

ver*_*age 10 java eclipse freemarker code-formatting

最近我写了一些工具,帮助我生成Java代码,否则这将是漫长而乏味的任务.我使用freemarker来编写模板.但是,模板中的所有空格都保留在输出中,导致代码非常混乱.我可以从我的模板中删除缩进来修复此问题,但这会使我的模板无法维护.

考虑这个简单的示例模板:

public class MyTestClass
{
    <#list properties as p>
        private String ${p.name};
    </#list>
}
Run Code Online (Sandbox Code Playgroud)

我的模板格式很好,但我的代码是这样的:

public class MyTestClass
{
        private String prop1;
        private String prop2;
        private String prop3;
}
Run Code Online (Sandbox Code Playgroud)

缩进有点太多了,它应该是:

public class MyTestClass
{
    private String prop1;
    private String prop2;
    private String prop3;
}
Run Code Online (Sandbox Code Playgroud)

要做到这一点,我必须从我的模板中删除缩进,如下所示:

public class MyTestClass
{
    <#list properties as p>
    private String ${p.name};
    </#list>
}
Run Code Online (Sandbox Code Playgroud)

对于这个简单的情况,从模板中删除缩进并不是一个真正的问题,但是您可以想象复杂的模板变得非常难以理解.

一方面我真的希望我的代码格式很好,但另一方面我希望我的模板格式也很好.我使用Eclipse作为IDE,内置格式化器完全根据我(和我的团队)的愿望进行定制.如果我能以某种方式从freemarker模板生成代码并作为后处理步骤格式化其输出与Eclipse的格式化器,那将是很好的.

我当然可以在生成代码后手动运行格式化程序,但我真的想自动执行此过程.

所以,长话短说,有谁知道如何在我自己的Java代码中使用Eclipse的代码格式化程序?

dde*_*ele 4

如果您想在自己的 java 代码中使用 Eclipse 格式化程序,我建议您查看maven java formatter 插件

它是一个maven插件,可用于基于Eclipse代码格式化设置文件来格式化源代码。

如果您不想使用 maven 但想将格式化代码嵌入到您自己的代码中,请查看FormatterMojo。它包含启动 Eclipse Code Formatter 的代码(使用 Eclipse 库)

一切都是免费和开源的。