intellij-idea compilation syntax-highlighting scala-macros

¿Cómo hacer que IntelliJ IDEA reconozca el código creado por las macros?



intellij-idea compilation (2)

Con la última compilación de complementos de Scala, hay una API que se puede usar para escribir su propio complemento para admitir sus macros: http://blog.jetbrains.com/scala/2015/10/14/intellij-api-to-build-scala-macros-support/

Ahora, todos pueden usar esta API para hacer que sus macros sean más amigables con su IDE favorito. Para hacerlo, debe implementar SyntheticMembersInjector y registrarlo en el archivo plugin.xml:

<extensions defaultExtensionNs="org.intellij.scala"> <syntheticMemberInjector implementation="org.jetbrains.example.injector.Injector"/> </extensions>

Fondo

Tengo un proyecto de Scala administrado por sbt que usa el diseño de proyecto de sbt habitual para proyectos de Scala con macros, es decir, un subproyecto que contiene las macros como un proyecto principal que es la aplicación real y que depende del macroproyecto. Las macros son macroanotaciones que, en esencia, generan objetos complementarios para las clases regulares. Los objetos complementarios generados declaran, entre otros miembros, aplicar / desaplicar métodos.

Usé el plugin sbt-idea para generar un proyecto IntelliJ IDEA correspondiente, y uso la consola sbt del sbt-plugin de IDEA para compilar y ejecutar mi aplicación Scala.

Todo funciona más o menos bien, excepto que IDEA no reconoce los objetos complementarios generados, y lo que es más importante, sus miembros, como aplicar / no aplicar. Por lo tanto, obtengo una línea ondulada en todas partes, por ejemplo, un método de aplicación.

Mi configuración es IntelliJ IDEA CE 133.471 con los complementos SBT 1.5.1 y Scala 0.28.363 en Windows 7 x64.

Preguntas

¿Cómo consigo que IntelliJ IDEA reconozca el código (clases, objetos, métodos, ...) que ha sido generado por las macros de Scala (anotaciones de macro, para ser precisos)?

¿Se sabe que otros IDEs, por ejemplo, Eclipse, funcionan mejor en ese entorno?

Relacionado

Esta pregunta (que es menos detallada) esencialmente pregunta lo mismo, pero todavía no ha recibido respuesta (2014-02-26).

De acuerdo con un desarrollador de JetBrains, la función que solicité está en su lista de tareas pendientes a largo plazo, pero no se implementará en el corto plazo (2014-03-05).