Frage

Hintergrund

Ich habe ein SBT-verwaltetes Scala-Projekt, das das übliches SBT-Projektlayout für Scala-Projekte mit Makros, dh einem Unterprojekt, das die Makros ein Hauptprojekt enthält, das die tatsächliche Anwendung ist und das von dem Makro-Teilprojekt abhängt. Die Makros sind Makro Anmerkungen , die im Wesentlichen Begleitobjekte erstellen reguläre Klassen. Die erzeugten Begleitobjekte deklarieren unter anderem anwenden / nicht zu aktiven Methoden.

Ich habe das SBT-Idee-Plugin verwendet, um ein entsprechendes Projekt intellij-Ideenprojekt zu generieren, und ich benutze die SBT-Konsole vom SBT-Plugin von Idee, um meine Scala-Anwendung zusammenzufassen.

Alles funktioniert mehr oder weniger in Ordnung, mit der Ausnahme, dass die erzeugten Begleitobjekte und noch wichtiger sind, ihre Mitglieder, wie z. B. gelten, nicht anwendbar, nicht von der Idee anerkannt. Somit bekomme ich eine squiggly Linie überall, z. B. eine Anwendenmethode.

Mein Setup ist Intellij-Idee CE 133.471 mit den Plugins SBT 1.5.1 und scala 0.28.363 unter Windows 7 x64.

Fragen

Wie bekomme ich IntelliJ-Idee, um Code (Klassen, Objekte, Methoden, ...) zu erkennen, die von Scala-Makros (Makro-Anmerkungen, präzise) generiert wurden?

sind andere IDES, z. B. Eclipse, der bekannt ist, um in einer solchen Einstellung besser zu arbeiten?

Verwandte

Diese Frage (das weniger detailliert ist), fragt im Wesentlichen das gleiche, ist aber noch keine Antwort erhalten (2014-02 -26).

Nach einem Jetbrainer-Entwickler ist die gewünschte Merkmale auf ihrem langfristigen Machen Sie Liste, wird jedoch nicht bald implementiert (2014-03-05).

War es hilfreich?

Lösung

Mit dem neuesten SCALA-Plugin-Build gibt es eine API, mit der Sie Ihr eigenes Plugin schreiben können, um Ihre Makros zu unterstützen: http://blog.jetbrains.com/scala/2015/10/14/tellij-api-to-build-scala-macros-support/

Jetzt kann jeder diese API nutzen, um ihre Makros für ihre Lieblings-IDE freundlicher zu machen.Dazu müssen Sie syntheticMembersinjektor , und registrieren Sie es in der Datei plugin.xml:

generasacodicetagpre.

Andere Tipps

scheint, als ob es eine begrenzte Unterstützung gibt, wenn irgendwelche.

Zitat durch diesen Link: http://blog.jetbraines.com/scala/2014/01/23/Heading-nach-The-perfect-Scala-Code-Analyse/

generasacodicetagpre.

30. Januar 2014 um 10:13 Uhr

Wir haben die Unterstützung für Scala-Makros begonnen, aber es ist keine einfache Aufgabe, daher kann ich nicht versprechen, dass es bald getan wird.

beste Grüße, Alexander Podkhalytinin.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top