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

一次为不同环境实现Lombok扩展(javac、Eclipse、IntelliJ IDEA等),java,javac,apt,lombok,Java,Javac,Apt,Lombok,最近我发现Lombok项目看起来真的很不错。我甚至会说,它在编译时确实涵盖了很多样板,而我仍然编写了一种在运行时有帮助的变通方法。我无法将Lombok集成到我当前的项目中,因为IntelliJ IDEA中缺乏支持,甚至连基本支持都没有Lombok扩展。我还发现了一个很好、很有用的Lombok扩展,名为Lombok pg,它提供了非常酷的功能,比如yield()(不再有消费者-生产者线程)。稍微看一下LombokPG源代码,我注意到它是为javac和Eclipse编写的。这两种实现看起来非常相似,

最近我发现Lombok项目看起来真的很不错。我甚至会说,它在编译时确实涵盖了很多样板,而我仍然编写了一种在运行时有帮助的变通方法。我无法将Lombok集成到我当前的项目中,因为IntelliJ IDEA中缺乏支持,甚至连基本支持都没有Lombok扩展。我还发现了一个很好、很有用的Lombok扩展,名为Lombok pg,它提供了非常酷的功能,比如
yield()
(不再有消费者-生产者线程)。稍微看一下LombokPG源代码,我注意到它是为javac和Eclipse编写的。这两种实现看起来非常相似,但据我所知,Lombok扩展实现活动,比方说,IntelliJ IDEA支持需要另一个,第三个,同样的实现,这听起来并不令人鼓舞

我只是好奇:是否有任何一种框架可以提供一些通用接口来管理AST,并为不同的环境提供实现

我只是好奇:是否有任何一种框架可以提供一些通用接口来管理AST,并为不同的环境提供实现

有一个项目正试图实现这一点。然而,这一切都是棘手的,我不知道确切的状态(我只知道它没有死,上一次提交是在两周前)。除了AST操作之外,还需要进行一些特定于编译器的黑客攻击,特别是在Eclipse中,这使得操作变得非常复杂

基本上,Lombok通过一个。由于Lombok作者自己不使用Intellij,因此开发AFAICT的优先级较低


Lombok pg很酷,但不再保持。将其移植到Lombok是一件好事。

非常感谢您的回复。如果我是对的,我尝试将该插件用于IntelliJ IDEA,但它似乎缺少许多Lombok内置功能,因此将Lombok引入正在使用IDEA编写的项目的尝试遭到了拒绝。坦率地说,我没有研究Lombok的主要源代码,但我确实相信Lombok有类似于Lombok AST的开箱即用(好吧,这是有道理的),就我现在所理解的:不幸的是,它没有。所以龙目山似乎绕过了我的项目。@Lyubomyr Shaydariv:不幸的是,我知道的比我写的还多。我记得有一条讨论Lombok如何使用Lombok AST(或不使用)的帖子,但我再也找不到了。也许可以尝试一下,因为我不知道作者多久访问一次。最近IntelliJ方面有很多活动。插件代码已经清理完毕,如果新的Lombok功能正在实现的话,将会有很多。我是Lombok项目的开发者之一(不是IntelliJ插件),你刚才说的线程是什么?它讨论了不使用Lombok AST的Lombok。我找不到比这更近的了。@willkil:恐怕是的。事实上,我指的是整个团队。不管怎么说,背后有(至少部分)同样的人,所以问问他们,他们现在会比我做得更多。