【问题标题】:Using the Eclipse code formatter from own program从自己的程序中使用 Eclipse 代码格式化程序
【发布时间】: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


【解决方案1】:

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

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

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

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

【讨论】:

  • 我一定要去看看。看起来很简单:)
  • 遗憾的是,格式与 Eclipse 所做的并不完全相同。尽管 eclipse 和 formatter-maven-plugin 使用相同的配置,但我有一些缩进不同的情况。
猜你喜欢
  • 2012-11-23
  • 1970-01-01
  • 1970-01-01
  • 2016-10-09
  • 2016-06-16
  • 2011-04-14
  • 1970-01-01
  • 1970-01-01
  • 2016-06-12
相关资源
最近更新 更多