Dokumentdaten und Dokumentansicht in benutzerdefinierten Editoren

Ein benutzerdefinierter Editor besteht aus zwei Teilen: einem Dokumentdatenobjekt und einem Dokumentansichtsobjekt. Wie die Namen vorschlagen, stellt das Dokumentdatenobjekt die anzuzeigenden Textdaten dar. Ebenso stellt das Dokumentansichtsobjekt (oder "View") ein oder mehrere Fenster dar, in denen das Dokumentdatenobjekt angezeigt werden soll.

Document Data-Objekt

Ein Dokumentdatenobjekt ist eine Datendarstellung von Text im Textpuffer. Es handelt sich um ein COM-Objekt, das Dokumenttext und andere Informationen speichert. Das Dokumentdatenobjekt behandelt auch die Dokumentpersistenz und ermöglicht mehrere Ansichten seiner Daten. Weitere Informationen finden Sie unter

DocumentData[] und Dokumentfenster.

Benutzerdefinierte Editoren und Designer können sich für die Verwendung des VsTextBuffer Objekts oder des eigenen benutzerdefinierten Puffers entscheiden. VsTextBuffer folgt dem vereinfachten Einbettungsmodell für einen Standard-Editor, unterstützt mehrere Ansichten und stellt Ereignisschnittstellen bereit, die zum Verwalten mehrerer Ansichten verwendet werden.

Dokumentansichtsobjekt

Ein Fenster, in dem Code und anderer Text angezeigt werden, wird als Dokumentansicht oder -ansicht bezeichnet. Wenn Sie einen Editor erstellen, können Sie eine einzelne Ansicht auswählen, in der Text in einem einzelnen Fenster angezeigt wird. Sie können auch eine mehrfache Ansicht auswählen, in der Text in mehreren Fenstern angezeigt wird. Ihre Wahl hängt von Ihrer Anwendung ab. Wenn Sie z. B. eine parallele Bearbeitung benötigen, würden Sie mehrere Ansichten auswählen. Jede Ansicht ist einem Eintrag in der integrierten Entwicklungsumgebung (IDE) zugeordnet, in der die Dokumenttabelle (RDT) ausgeführt wird. Ansichtsfenster gehören zu einem Projekt oder objekt IVsHierarchy .

Wenn Ihr Editor mehrere Ansichten eines Dokumentdatenobjekts unterstützt, müssen Ihre Dokumentdaten und Dokumentansichtsobjekte getrennt sein. Andernfalls können sie gruppiert werden. Weitere Informationen finden Sie unter Unterstützen mehrerer Dokumentansichten.

Die IDE benachrichtigt Ansichten über Ereignisse (z. B. wenn eine Lösung, die ein Dokument enthält) durch Abgleichen eines Elementbezeichners (ItemID) für jeden Eintrag in der ausgeführten Dokumenttabelle. Weitere Informationen hierzu finden Sie in der Dokumenttabelle "Ausführen".

Es gibt zwei Optionen zum Erstellen einer Ansicht für einen benutzerdefinierten Editor. Eines ist das direkte Aktivierungsmodell, bei dem die Ansicht in einem Fenster entweder mithilfe eines ActiveX-Steuerelements oder eines Dokumentdatenobjekts gehostet wird. Die zweite ist das vereinfachte Einbettungsmodell, bei dem die Ansicht von Visual Studio gehostet wird und IVsWindowPane zum Behandeln von Fensterbefehlen implementiert wird. Informationen zum direkten Aktivierungsmodell finden Sie unter "Direkte Aktivierung". Informationen zum vereinfachten Einbettungsmodell finden Sie unter Vereinfachtes Einbetten.