2013-10-14 14 views
4

最近我發現了Project Lombok,看起來非常漂亮。我甚至會說它在編譯時確實覆蓋了很多樣板,而我仍然編寫了一些在運行時幫助的變通辦法。我無法將Lombok整合到我目前的項目中,因爲即使沒有Lombok擴展的基本支持,IntelliJ IDEA也缺乏支持。我還發現了一個名爲lombok-pg的非常有用的龍目島擴展,它的功能非常酷,如yield()(沒有更多的消費者生產者線程)。看一看lombok-pg源代碼我注意到它是爲javac和Eclipse編寫的。這兩個實現看起來看起來非常相似,但就我所瞭解的Lombok擴展實現活動而言,假設IntelliJ IDEA支持需要另一個,第三個實現同樣的東西,而且聽起來不那麼令人鼓舞。一次爲不同的環境實現Lombok擴展(javac,Eclipse,IntelliJ IDEA等)

我只是好奇:是否有任何種類的框架提供了一些通用的界面來管理AST與不同環境的實現?

回答

4

我只是好奇:是否有任何種類的框架提供了一些通用的界面來管理AST與不同環境的實現?

存在Lombok AST項目試圖實現這一點。然而,這一切都很棘手,我不知道確切的狀態(我只知道它沒有死,最近兩週前已經犯下)。除了AST操作之外,還有一些編譯器特定的黑客行爲需要完成,特別是在Eclipse中,這使得它非常複雜。

基本上,Lombok通過plugin在Intellij IDEA中運行。由於龍目島作者本身不使用Intellij,因此開發的AFAICT的優先級較低。

Lombok-pg很酷,但不再維護。將它移植到龍目島是not trivial

+0

非常感謝您的回覆。如果我是對的,我試圖將這個插件用於IntelliJ IDEA,並且它似乎缺少很多Lombok內置功能,所以這只是一個拒絕嘗試將Lombok引入IDEA中編寫的項目。坦率地說,我沒有看看龍目島的主要源代碼,但我確實相信龍目島有類似龍目島的AST(嗯,它是有道理的),而據我現在瞭解:它沒有,不幸。所以Lombok似乎繞過了我的項目。 –

+0

@Lyubomyr Shaydariv:我不知道比我寫的更多。我想起了一個討論Lombok如何使用Lombok AST(或不是)的主題,但我再也找不到它了。也許嘗試[討論組](https://groups.google.com/forum/#!forum/project-lombok),因爲我不知道作者訪問SO的頻率如何。 – maaartinus

+1

最近在IntelliJ上有很多活動。如果正在實施新的Lombok功能,插件代碼已經被清除了很多。 DisclosureL我是Project Lombok開發人員之一(不是IntelliJ插件) –

相關問題