3 Stimmen

Importanpassung in Groovy-Eclipse für DSL

Ich verwende Groovy für eine DSL-Berechnungsmaschine und mag die Unterstützung, die wir jetzt in Eclipse mit STS und dem Groovy-Eclipse-Plugin haben (ich verwende STS 2.8.0M2 mit dem neuesten Meilenstein von Groovy-Eclipse 2.5.2).

Ein Problem, das ich habe, ist, dass ich nicht weiß, wie ich den Groovy-Editor dazu bringe, die automatischen Importe, die ich meinem Skript-Runner hinzugefügt habe, zu "erkennen", was bedeutet, dass Eclipse mir einen ganzen Haufen falscher Fehler anzeigt. Wenn Sie den Groovy-Klassenlader verwenden, können Sie zusätzliche Importe kostenlos hinzufügen, so dass Sie keine Importe in Ihrem Skript vornehmen müssen.

Ich habe ein wenig mit der DSLD-Unterstützung in Groovy-Eclipse gespielt (die verwendet werden kann, um die Autovervollständigung zu unterstützen), aber es ist für mich nicht offensichtlich, dass dies etwas ist, was ich damit machen könnte - ich finde die DSLD-Dokumentation nicht so einfach zu verstehen.

Die Inferencing-Einstellungen für Groovy in Eclipse sahen auch nicht wie das Richtige aus.

Zum Beispiel:

def result = new CalculationResult()

gibt mir einen Fehler in der CalculationResult Klasse, da sie nicht importiert wird, aber das Skript wird in meiner Umgebung aufgrund der angepassten Importe des Groovy-Klassenladers korrekt ausgeführt. Ich verwende die Standard-Importanpassung von Groovy, zum Beispiel:

import org.codehaus.groovy.control.customizers.ImportCustomizer
import org.codehaus.groovy.control.CompilerConfiguration

def importCustomizer = new ImportCustomizer()
importCustomizer.addImport 'CalculationResult', 'ch.hedgesphere.core.type.CalculationResult'

def configuration = new CompilerConfiguration()

configuration.addCompilationCustomizers(importCustomizer)
...

Jeder Hinweis ist willkommen.

2voto

tim_yates Punkte 160397

Dies scheint in ihrem Bugtracker sein die in der Version 2.6 des Plugins enthalten sein wird.

Aber der Kommentar von Andrew Eisenberg verheißt nichts Gutes:

Leider ist dies für DSLDs nicht möglich. Da ein fehlender Import zu Kompilierfehlern führen kann, brauchen wir eine Möglichkeit, um die Compiler-Suche zu erweitern. Es könnte eine Möglichkeit geben, Folgendes anzugeben diese Information innerhalb einer DSLD zu spezifizieren, aber das würde bedeuten, dass man sich in DSLDs auf eine ganz andere Art und Weise. Wahrscheinlicher ist, dass dies durch ein Eclipse-Plugin (wie das Gradle-Tooling) angegeben werden.

Eine andere Möglichkeit ist, dass wir sicherstellen können, dass bestimmte Arten von AST Transformationen während eines Abgleichs angewandt werden und der Editor würde dann einfach auf "magische Weise" über diese zusätzlichen Importe Bescheid wissen. Wir müssen die Machbarkeit Durchführbarkeit dieser Möglichkeit prüfen.

Aber vielleicht wäre eine Abstimmung zu diesem Thema nicht verkehrt?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X