Datos de documento y vista de documentos en editores personalizados

Un editor personalizado consta de dos partes: un objeto de datos de documento y un objeto de vista de documento. Como sugieren los nombres, el objeto de datos del documento representa los datos de texto que se van a mostrar. Del mismo modo, el objeto de vista de documento (o "vista") representa una o varias ventanas en las que se va a mostrar el objeto de datos del documento.

Objeto de datos de documento

Un objeto de datos de documento es una representación de datos de texto en el búfer de texto. Es un objeto COM que almacena texto de documento y otra información. El objeto de datos del documento también controla la persistencia del documento y habilita varias vistas de sus datos. Para obtener más información, vea

DocumentData[] y Ventanas de documento.

Los editores y diseñadores personalizados pueden optar por usar el VsTextBuffer objeto o su propio búfer personalizado. VsTextBuffer sigue el modelo de inserción simplificado para un editor estándar, admite varias vistas y proporciona interfaces de eventos que se usan para administrar varias vistas.

Objeto de vista de documento

Una ventana que muestra código y otro texto se conoce como vista o vista de documento. Al crear un editor, puede elegir una sola vista, en la que el texto se muestra en una sola ventana. O bien, puede elegir una vista múltiple, en la que se muestra texto en más de una ventana. Su elección depende de la aplicación. Por ejemplo, si necesita editar en paralelo, elegiría varias vistas. Cada vista está asociada a una entrada de la tabla de documentos (RDT) del entorno de desarrollo integrado (IDE). Las ventanas de vista pertenecen a un proyecto o a un IVsHierarchy objeto .

Si el editor admite varias vistas de un objeto de datos de documento, los datos del documento y los objetos de vista de documentos deben ser independientes. De lo contrario, se pueden agrupar. Para obtener más información, consulte Compatibilidad con varias vistas de documentos.

El IDE notifica las vistas sobre los eventos (por ejemplo, cuando se cierra una solución que contiene un documento) haciendo coincidir un identificador de elemento (ItemID) para cada entrada de la tabla de documentos en ejecución. Para obtener más información sobre esto, consulte Ejecución de la tabla de documentos.

Hay dos opciones para crear una vista para un editor personalizado. Uno es el modelo de activación local, donde la vista se hospeda en una ventana mediante un control ActiveX o un objeto de datos de documento. El segundo es el modelo de inserción simplificado, donde visual Studio hospeda la vista y IVsWindowPane se implementa para controlar los comandos de ventana. Para obtener información sobre el modelo de activación local, consulte Activación local. Para obtener información sobre el modelo de inserción simplificado, consulte Inserción simplificada.