Ich versuche, MyDSLProposalProvider von einem externen Eclipse RCP-Projekt zu erweitern. Ich habe ein Erweiterungspunktschema erstellt, das eine Klasseneigenschaft erfordert, die meinen ProposalProvider erweitert. In dem neuen Projekt erweitere ich die Klasse und überschreibe einige Methoden, um mir eine Ausgabe zu geben, damit ich sehen kann, dass die externe Methode aufgerufen wird. Aber das passiert derzeit nicht. Muss ich irgendetwas beachten?Erweitern Sie ProposalProvider im externen Eclipse-Projekt über den Erweiterungspunkt
Derzeit ist die hirachy wie folgt aussieht:
MyDSLProposalProvider extends AbstractMyDSLProposalProvider
ExternalProposalProvider extends MyDSLProposalProvider
ich eine Methode neu geschrieben, die in dem AbstractMyDSLProposalProvider
aber wenn sie ausgelöst wird seine die vordefinierte Methode im AbstractMyDSLProposalProvider
aufgerufen und nicht meine neue Implementierung.
public class ExternalMyDSLProposalPovider extends MyDSLProposalProvider
{
@Override
public void completeComponent_Name(EObject model, Assignment
assignment, ContentAssistContext context,
ICompletionProposalAcceptor acceptor) {
System.err.println("extern");
if(model instanceof Component)
{
createProposal("foo", "foo", context, acceptor);
}
super.completeComponent_Name(model, assignment, context, acceptor);
}
}
Dies ist die Klasse in der externen Eclipse Project
. Danke für die Hilfe.
Gibt das neue Projekt tatsächlich einen Erweiterungspunkt mit Ihrem neuen Schema an? Wie geht es Ihnen beim Lesen der Erweiterungspunktdefinitionen in Ihrem Hauptplugin? –
Ja, das neue Projekt deklariert eine Erweiterung für den angegebenen Erweiterungspunkt des myDSL-Projekts. Aber ich bekomme den zweiten Teil Ihrer Frage nicht. Kannst du vielleicht mit etwas mehr Details erklären, was du meinst? – fx88
Wenn Sie einen neuen Erweiterungspunkt mit einem Schema definieren, müssen Sie Code schreiben, um die Erweiterungspunkte zu lesen, die dieses Schema aus der IExtensionRegistry verwenden. Haben Sie das getan? –