s
Sie haben das Objekt SourceViewer bereits im Kontext der Verwaltung von Anmerkungen für den Quellcode kennen gelernt.
Der SourceViewer ist außerdem der zentrale Knoten für die Konfiguration des Editors mit Plug-in-Verhalten wie beispielsweise Kurzinfos für Text und Syntaxhervorhebung. Zu diesem Zweck stellt der Editor ein Objekt SourceViewerConfiguration bereit, das zur Konfiguration des ObjektesSourceViewer verwendet wird, wenn dies erstellt wird. Der Java-Beispieleditor muss lediglich ein für seine Zwecke geeignetes ObjektSourceViewerConfiguration bereitstellen. Der folgende Ausschnitt zeigt, wie der JavaTextEditor seine Konfiguration erstellt:
protected void initializeEditor() { super.initializeEditor(); JavaEditorEnvironment.connect(this); setSourceViewerConfiguration(new JavaSourceViewerConfiguration()); ...
Dies wirft die Frage auf, was das Objekt JavaSourceViewerConfiguration ausführt. Ein Großteil seines Verhaltens wurde aus dem ObjektSourceViewerConfiguration, übernommen, das Standardstrategien für Plug-in-Verhalten für Editoren (z. B. automatisches Einrücken, Aufhebung von Operationen, Doppelklickverhalten, Kurzinfo für Text, Syntaxhervorhebung und Formatierung) definiert. Öffentliche Methoden im ObjektSourceViewerConfiguration stellen die Helperobjekte zur Verfügung, die diese Verhaltensweisen implementieren.
Falls das Standardverhalten, das im ObjektSourceViewerConfiguration definiert ist, nicht für Ihren Editor geeignet ist, sollten Sie die Methode initializeEditor() wie oben gezeigt überschreiben und eine eigene Konfiguration für die Quellenanzeigefunktion im Editor festlegen. Ihre Konfiguration kann Methoden im ObjektSourceViewerConfiguration überschreiben und auf diese Weise angepasste Helperobjekte bereitstellen, die Verhalten für Ihren Editor implementieren. Der folgende Ausschnitt zeigt zwei der Methoden, mit denen das Objekt JavaSourceViewerConfiguration angepasste Helperobjekte für den Java-Beispieleditor bereitstellt:
public IAnnotationHover getAnnotationHover(ISourceViewer sourceViewer) { return new JavaAnnotationHover(); } public IAutoIndentStrategy getAutoIndentStrategy(ISourceViewer sourceViewer, String contentType) { return (IDocument.DEFAULT_CONTENT_TYPE.equals(contentType) ? new JavaAutoIndentStrategy() : new DefaultAutoIndentStrategy()); }
In der ersten Methode wird eine angepasste Helperklasse für die Implementierung von Kurzinfos für Anmerkungen zur Verfügung gestellt. In der zweiten Methode wird der Standardinhaltstyp des Dokuments abgefragt, um zu ermitteln, ob eine angepasste Strategie oder aber die Standardstrategie für das automatische Einrücken verwendet werden soll.
Eine vollständige Beschreibung aller Möglichkeiten für die Konfiguration einer Quellenanzeigefunktion durch das Überschreiben von Methoden finden Sie in den API-Referenzinformationen zuSourceViewerConfiguration.