Données de document et vue de document dans les éditeurs personnalisés

Un éditeur personnalisé se compose de deux parties : un objet de données de document et un objet d’affichage de document. Comme le suggèrent les noms, l’objet de données de document représente les données de texte à afficher. De même, l’objet d’affichage de document (ou « affichage ») représente une ou plusieurs fenêtres dans lesquelles afficher l’objet de données de document.

Objet de données de document

Un objet de données de document est une représentation de données de texte dans la mémoire tampon de texte. Il s’agit d’un objet COM qui stocke le texte du document et d’autres informations. L’objet de données de document gère également la persistance des documents et active plusieurs vues de ses données. Pour plus d'informations, consultez la rubrique

DocumentData[] et DocumentEz Windows.

Les éditeurs et concepteurs personnalisés peuvent choisir d’utiliser l’objet VsTextBuffer ou leur propre mémoire tampon personnalisée. VsTextBuffer suit le modèle d’incorporation simplifié pour un éditeur standard, prend en charge plusieurs vues et fournit des interfaces d’événements utilisées pour gérer plusieurs vues.

Objet d’affichage de document

Une fenêtre qui affiche le code et d’autres textes est connue sous le nom d’affichage ou d’affichage de document. Lorsque vous créez un éditeur, vous pouvez choisir un affichage unique, dans lequel le texte s’affiche dans une seule fenêtre. Vous pouvez également choisir un affichage multiple, dans lequel le texte s’affiche dans plusieurs fenêtres. Votre choix dépend de votre application. Par exemple, si vous avez besoin d’une modification côte à côte, vous choisissez plusieurs affichages. Chaque vue est associée à une entrée dans l’environnement de développement intégré (IDE) exécutant la table de documents (RDT). Les fenêtres d’affichage appartiennent à un projet ou à un IVsHierarchy objet.

Si votre éditeur prend en charge plusieurs vues d’un objet de données de document, vos données de document et vos objets de vue de document doivent être distincts. Sinon, ils peuvent être regroupés ensemble. Pour plus d’informations, consultez Prise en charge de plusieurs affichages de documents.

L’IDE avertit les vues sur les événements (par exemple, lorsqu’une solution contenant un document est fermée) en correspondant à un identificateur d’élément (ItemID) pour chaque entrée dans la table de documents en cours d’exécution. Pour plus d’informations sur ce problème, consultez la table de documents en cours d’exécution.

Il existe deux options pour créer un affichage pour un éditeur personnalisé. Il s’agit du modèle d’activation sur place, où la vue est hébergée dans une fenêtre à l’aide d’un contrôle ActiveX ou d’un objet de données de document. Le deuxième est le modèle d’incorporation simplifié, où la vue est hébergée par Visual Studio et IVsWindowPane implémentée pour gérer les commandes de fenêtre. Pour plus d’informations sur le modèle d’activation sur place, consultez Activation sur place. Pour plus d’informations sur le modèle d’incorporation simplifié, consultez Incorporation simplifiée.