背景
我有一个sbt管理的Scala项目,它使用带有宏的Scala项目的常规sbt项目布局,即包含宏的子项目--一个主项目,它是实际的应用程序,它依赖于宏子项目。宏是宏注释,本质上是为常规类生成伴生对象。生成的伴生对象在其他成员中声明应用/不应用方法。
我使用sbt插件生成相应的IntelliJ IDEA项目,并使用IDEA的sbt中的sbt控制台编译和运行我的Scala应用程序。
除了生成的同伴对象(更重要的是,它们的成员,如apply/unapply )不被IDEA所识别外,一切都或多或少地工作得很好。因此,我在任何地方都会得到一条支离破碎的线,例如,一种应用方法。
我的设置是IntelliJ IDEA CE 133.471,其插件为SBT1.5.1和x64 7上的Scala0.28.363。
问题
如何让IntelliJ识别代码(类、对象、方法、.)这是由Scala宏生成的(准确地说,是宏注释)?
其他IDE,例如Eclipse,在这种环境下工作得更好吗?
相关
这个问题 (不太详细)本质上要求相同,但还没有得到答复(2014-02-26)。
据一位JetBrains开发人员我要求的功能在他们的长期待办事项清单上,但不会在短期内实现(2014-03-05年)。
发布于 2015-10-29 13:34:26
在最新的Scala插件构建中,有一个API可以用来编写自己的插件以支持宏:http://blog.jetbrains.com/scala/2015/10/14/intellij-api-to-build-scala-macros-support/。
现在,每个人都可以使用这个API使他们的宏对他们最喜欢的IDE更加友好。为此,您必须实现SyntheticMembersInjector,并将其注册到plugin.xml文件中:
发布于 2014-12-22 23:27:50
如果有的话似乎支持有限。
引用此链接:http://blog.jetbrains.com/scala/2014/01/23/heading-to-the-perfect-scala-code-analysis/
Alexander Podkhalyuzin says:
2014年01月30日上午10时13分
我们开始支持Scala宏,但这不是一个简单的任务,所以我不能保证它很快就会完成。
向你问好亚历山大·波德卡留津。
https://stackoverflow.com/questions/22047492
复制相似问题