Données de document et les vues de document dans les éditeurs personnalisésDocument data and document view in custom editors

Un éditeur personnalisé se compose de deux parties : un objet de données de document et un objet de vue de document.A custom editor consists of two parts: a document data object and a document view object. Comme leur nom le suggère, l’objet de données représente les données de texte à afficher.As the names suggest, the document data object represents the text data to be displayed. De même, l’objet de vue de document (ou « vue ») représente une ou plusieurs fenêtres d’affichage de l’objet de données de document.Similarly, the document view object (or "view") represents one or more windows in which to display the document data object.

Objet de données de documentDocument data object

Un objet de données de document est une représentation sous forme de données de texte dans la mémoire tampon de texte.A document data object is a data representation of text in the text buffer. C’est un objet COM qui stocke le texte du document et autres informations.It is a COM object that stores document text and other information. Également, l’objet de données gère la persistance de document et permet à plusieurs vues de ses données.The document data object also handles document persistence and enables multiple views of its data. Pour plus d'informations, consultezFor more information, see

DocumentData et Document Windows.DocumentData and Document Windows.

Concepteurs et éditeurs personnalisés peuvent choisir d’utiliser le VsTextBuffer objet ou leur propre mémoire tampon personnalisé.Custom editors and designers can opt to use the VsTextBuffer object or their own custom buffer. VsTextBuffer suit le modèle d’incorporation simplifié pour un éditeur standard, prend en charge plusieurs vues et fournit des interfaces d’événements qui permettent de gérer plusieurs vues.VsTextBuffer follows the simplified embedding model for a standard editor, supports multiple views, and provides event interfaces that are used to manage multiple views.

Objet de vue de documentDocument view object

Une fenêtre qui affiche le code et autres textes est connue comme un document ou un affichage.A window that displays code and other text is known as a document view or view. Lorsque vous créez un éditeur, vous pouvez choisir une seule vue, dans lequel le texte est affiché dans une fenêtre unique.When you create an editor, you can choose either a single view, in which text is displayed in a single window. Ou vous pouvez choisir une vue plusieurs, dans lequel le texte est affiché dans plusieurs fenêtres.Or you can choose a multiple view, in which text is displayed in more than one window. Votre choix dépend de votre application.Your choice depends on your application. Par exemple, si vous avez besoin de modification côte à côte, vous choisiriez MultipleView.For example, if you need side-by-side editing, you would choose multiple view. Chaque vue est associée à une entrée dans l’environnement de développement intégré de (IDE) en cours d’exécution (RDT) de table de document.Each view is associated with an entry in the integrated development environment's (IDE) running document table (RDT). Fenêtres d’affichage appartiennent à un projet ou un IVsHierarchy objet.View windows belong to a project or an IVsHierarchy object.

Si votre éditeur prend en charge plusieurs vues d’un objet de données de document, vos données de document et les objets de vue de document doivent être distincts.If your editor supports multiple views of a document data object, then your document data and document view objects must be separate. Sinon, ils peuvent être regroupés.Otherwise, they can be grouped together. Pour plus d’informations, consultez prendre en charge plusieurs vues de document.For more information, see Support multiple document views.

L’IDE signale des vues sur les événements (par exemple, lors de la fermeture d’une solution contenant un document) en mettant en correspondance un identificateur d’élément (ItemID) pour chaque entrée dans la table de document en cours d’exécution.The IDE notifies views about events (for example, when a solution containing a document is closed) by matching an item identifier (ItemID) for each entry in the running document table. Pour plus d’informations, consultez table de documents en cours d’exécution.For more information on this, see Running document table.

Il existe deux options pour la création d’une vue pour un éditeur personnalisé.There are two options for creating a view for a custom editor. Un est le modèle d’activation en place, où la vue est hébergée dans une fenêtre à l’aide d’un contrôle ActiveX ou un objet de données de document.One is the in-place activation model, where the view is hosted in a window using either an ActiveX control or a document data object. Le second est le modèle d’incorporation simplifié, où la vue est hébergée par Visual StudioVisual Studio et IVsWindowPane est implémentée pour prendre en charge les commandes de fenêtre.The second is the simplified embedding model, where the view is hosted by Visual StudioVisual Studio and IVsWindowPane is implemented to handle window commands. Pour plus d’informations sur le modèle d’activation sur place, consultez In situ d’activation.For information about the in-place activation model, see In-place activation. Pour plus d’informations sur le modèle d’incorporation simplifiée, consultez incorporation simplifiée.For information about the simplified embedding model, see Simplified embedding.

Voir aussiSee also

Prendre en charge plusieurs vues de document Support multiple document views
Incorporation simplifiée Simplified embedding
Comment : joindre des vues de données de document How to: Attach views to document data
Gestion du détenteur de verrou document Document lock holder management
Vues uniques et multiples d’onglet Single and multi-tab views
Enregistrer un document standard Save a standard document
Persistance et la table de document en cours d’exécution Persistence and the running document table
Déterminer quel éditeur ouvre un fichier dans un projet Determine which editor opens a file in a project
Fabriques d’éditeurEditor factories