2012-10-24

Eclipse-Zeilennummern programmatisch umschalten

Heute habe ich ein Mini-Tutorial für Sie. Wir werden ein kleines Eclipse-Plug-in schreiben, das die Zeilennummern in Editoren ein- und ausschaltet. Wie Sie bereits wissen, geht das auch so. Aber immerhin bekommt das Durchklicken des Assistenten zumindest einen Hauch Praxisbezug.

Ich benutze seit der ersten Version meines Eclipse-Buches Eclipse Classic (früher hieß das Eclipse SDK). Dieses Paket enthält die für die Plug-in-Entwicklung benötigten Zutaten. Wenn Sie zum Beispiel Eclipse IDE for Java Developers verwenden, müssen Sie sich die Bestandteile leider selbst nachinstallieren.

Als Erstes legen wir ein neues Plug-in-Projekt an und hangeln uns durch den Projekt-Assistenten.

Screenshot: erste Seite des Projekt-Assistenten

Screenshot: das Projekt konfigurieren

Screenshot: weitere Angaben zum Projekt

Screenshot: Template "Hello, World Command"

Screenshot: Anlegen des Projekts abschließen

Nach dem Schließen des Assistenten werden Sie unter Umständen mit folgendem Dialog beglückt:

Screenshot: Geeignete Perspektive öffnen?

Sagen Sie einfach Ja.

Das erzeugte Projekt können Sie durch Rechtsklick auf die Projektwurzel im Package Explorer mit Run As – Eclipse Application starten. Haben Sie das Sample Menu entdeckt?

Screenshot: Dialog des Beispiel-Plug-ins

Diesen Dialog werden wir jetzt durch das Umschalten der Zeilennummern ersetzen. Öffnen Sie hierzu bitte die Klasse SampleHandler. Sie enthält unter anderem die Methode execute(). Deren Rumpf tauschen Sie bitte gegen folgendes Codefragment aus:

public Object execute(ExecutionEvent event) throws ExecutionException {
  String lineNumbers = AbstractDecoratedTextEditorPreferenceConstants.EDITOR_LINE_NUMBER_RULER;
  EditorsUI.getPreferenceStore().setValue(lineNumbers, toggle);
  toggle = !toggle;
  return null;
}
Java2html

Eclipse wird an mehreren Stellen schimpfen. Zum einen müssen Sie der Klasse eine statische Variable hinzufügen:

public class SampleHandler extends AbstractHandler {
 
  private static boolean toggle = false;
 
...
Java2html

Um die unbekannten Referenzen aufzulösen, öffnen Sie die Datei plugin.xml im Plug-in Manifest Editor und wechseln dort auf die Registerkarte Dependencies. Klicken Sie auf Add und geben org.eclipse.ui.editors ein.

Screenshot: der Dialog Plug-in Selection

Nach dem Speichern der Datei plugin.xml können Sie in SampleHandler noch die fehlenden Importe korrigieren. Nach dem Starten der Anwendung scheint nach dem Anklicken von Sample Command nichts zu geschehen. Öffnen Sie einfach eine leere Datei aus dem File-Menü.

Natürlich gäbe es an diesem Plug-in einiges zu verbessern. Vielleicht haben Sie ja Lust darauf. Schreiben Sie mir doch, welche Erweiterungen oder Korrekturen Sie vorgenommen haben. Ich freue mich auf Post!

No comments:

Post a Comment