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

标签 java eclipse freemarker code-formatting

最近我编写了一些工具来帮助我生成 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 的代码格式化程序?

最佳答案

如果您想从自己的 Java 代码中使用 Eclipse 格式化程序,我建议您看一下 maven java formatter plugin .

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

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

这一切都是免费和开源的。

关于java - 从自己的程序中使用 Eclipse 代码格式化程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14788225/

相关文章:

eclipse - 如何防止升级后的Eclipse Oxygen自动降级

java - 如何导入jms

java - 比较文件内容 Eclipse

java - 如何在 Liferay 中将 freemarker 电子邮件模板作为电子邮件传递?

eclipse - Freemarker Eclipse 插件

java - 如何使用prometheus java客户端监控请求和响应之间的时间跨度

java - 为什么重新启动 eclipse 会提高我的运行时间

java - Java中如何保证用户输入始终为Integer

java - 在 FreeMarker 中,如何自动将自定义对象(例如 java.awt.Color)转换为特定的字符串值(例如 HTML 十六进制颜色)?

java - 使用 pdfbox 操作 acrofields 会更改复选框 onValue 的编码