Wie kann ich eine benutzerdefinierte Aktion für "Open Declaration" (Verknüpfung F3) in Eclipse definieren

9

Wie registriere ich einen zusätzlichen Handler / Aktion / Befehl für "Open Declaration" (aka F3) in einem Plugin?

Ich möchte F3 für String-Literale in Java-Code verwenden, um zu den Dateien zu navigieren, die Ressourcenpaketschlüssel deklarieren. Ich habe bereits eine Kontextmenüaktion bereit, die den Job erledigt. Alles, was fehlt, ist eine Möglichkeit, es an den Schlüssel zu binden, an den die Benutzer gewöhnt sind.

Zusätzliche Gutschrift für eine vollständige kommentierte Liste von Erweiterungspunkten. Ich bin es leid, einen halben Tag damit verbringen zu müssen, den Erweiterungspunkt zu finden, den ich für ein Feature verwenden muss. Und mit "annotiert" meine ich mehr als

%Vor%     
Stroboskop 10.12.2009, 16:09
quelle

3 Antworten

1

Im Abschnitt Eclipse-Befehle finden Sie ausführliche Informationen zum Implementieren von Befehlshandlern und Binde sie an Tasten, Menüs und Symbolleisten.

Es gibt eine vollständige Liste der Erweiterungspunkte , die in der Eclipse-Hilfe bereitgestellt wird, obwohl Sie einen Drilldown durchführen müssen, um die vollständige Beschreibung und die Codebeispiele zu erhalten. Es gibt auch einen "Erweiterungspunkt hinzufügen" -Wizard im Plugin-Editor, der eine kurze Beschreibung, einen Link zur vollständigen Hilfe und für einige Erweiterungspunkte sogar vordefinierte Vorlagen enthält.

    
Eugene Kuleshov 10.12.2009 19:01
quelle
1

Vielleicht wissen Sie das, aber obwohl die F3-Tastenkombination Sie nicht zum deklarierenden Ressourcenbündelschlüssel führt, gibt es zwei ähnliche Dinge, die funktionieren:

  • Wenn Sie mit der Maus über die Zeichenfolge fahren, wird Ihnen die konvertierte Zeichenfolge angezeigt.
  • Wenn Sie bei gedrückter Ctrl-Taste auf den String klicken, gelangen Sie zum deklarierenden Ressourcenbündelschlüssel.

Offensichtlich erfordern beide die Verwendung der Maus; Wenn Sie nur eine Tastatur sind, sind Sie möglicherweise nicht glücklich damit.

Dies beantwortet nicht direkt Ihre Frage, aber ich hoffe, es hilft.

    
Mike Morearty 12.12.2009 18:33
quelle
1

Leider gibt es keinen Erweiterungspunkt für diese Funktionalität. Ich empfehle, dass Sie aufhören, mit dem Eclipse Command Framework herumzuspielen. Der JavaEditor verwendet dieses Framework nicht zum Registrieren seiner Befehle und registriert stattdessen Befehle, wenn der Editor geöffnet wird. Und für Dritte gibt es keinen einfachen Weg, dies zu erweitern / zu ändern.

Die Aktion, die ausgeführt wird, wenn F3 gedrückt wird, ist org.eclipse.jdt.ui.actions.OpenAction .

Obwohl es keine einfache Möglichkeit gibt, den JavaEditor zu erweitern oder zu ändern, gibt es Möglichkeiten, dies zu tun. Die eine Art, die ich für Ihre Situation empfehle, ist Equinox Aspects (http://www.eclipse.org/equinox/incubator/aspects/). Dadurch können Sie AspectJ verwenden, um in Eclipse zu weben und Änderungen an den gewünschten Stellen vorzunehmen.

So kann AJDT (http://eclipse.org/ajdt) die Arbeitsweise von JDT verändern.

In Ihrer speziellen Situation würde ich empfehlen, einen Pointcut zu erstellen, der auf die Instanziierung der Klasse OpenAction abzielt und sie durch eine von Ihnen erstellte Implementierung ersetzt. Es delegiert normalerweise an die JDT-Implementierung oder es führt Ihren Befehl aus, wenn Sie es benötigen.

Wenn dies die Art von Lösung ist, nach der Sie suchen, dann kann ich genau erläutern, wie Sie dies tun können.

    
Andrew Eisenberg 21.02.2011 05:54
quelle