一次为不同的环境实现Lombok扩展(javac,Eclipse,IntelliJ IDEA等)

时间:2013-10-14 22:51:01

标签: java javac apt lombok

最近我发现Project Lombok真的很漂亮。我甚至会说它在编译时真的涵盖了很多样板,而我仍然编写了一些有助于运行时的变通方法。我无法将Lombok集成到我当前的项目中,因为IntelliJ IDEA缺乏支持,即使对于没有Lombok扩展的基本支持也是如此。我还发现了一个名为 lombok-pg 的非常有用的Lombok扩展,它具有非常酷的东西,如yield()(没有更多的消费者 - 生产者线程)。稍微看一下 lombok-pg 源代码,我注意到它是为javac和Eclipse编写的。这两个实现看起来看起来非常相似,但据我所知,Lombok扩展实现活动,让我们说,IntelliJ IDEA支持需要另一个,第三个,实现同样的东西,这听起来不太令人鼓舞。

我只是好奇:是否有任何类型的框架提供一些通用接口来管理AST以及针对不同环境的实现?

1 个答案:

答案 0 :(得分:4)

  

我只是好奇:是否有任何类型的框架提供一些通用接口来管理AST以及针对不同环境的实现?

Lombok AST项目试图实现这一目标。然而,这一切都很棘手,我不知道确切的状态(我只知道它没有死,两周前最后一次提交)。除了AST操作之外,还有一些编译器特定的黑客攻击要做,尤其是在Eclipse中,这使得它非常复杂。

基本上,Lombok通过plugin在Intellij IDEA中运行。由于龙目岛作者本身不使用Intellij,因此开发的优先级较低AFAICT。

Lombok-pg很酷,但不再维护。将它移植到龙目岛是not trivial