Creación de editores y diseñadores personalizados

El entorno de desarrollo integrado (IDE) de Visual Studio puede hospedar diferentes tipos de editor:

  • Editor principal de Visual Studio

  • Editores personalizados

  • Editores externos

  • Diseñadores

La siguiente información le ayuda a elegir el tipo de editor que necesita.

Tipos de editor

Para obtener información sobre el editor principal de Visual Studio, vea Extender el editor y los servicios de lenguaje.

Editores personalizados

Un editor personalizado es uno diseñado para trabajar en circunstancias especializadas. Por ejemplo, puede crear un editor cuya función es leer y escribir datos en un repositorio específico, como un servidor de Microsoft Exchange. Elija un editor personalizado si desea un editor que funcione solo con el tipo de proyecto o si desea un editor que tenga solo algunos comandos específicos. Sin embargo, tenga en cuenta que los usuarios no podrán usar un editor personalizado para editar proyectos estándar de Visual Studio.

Un editor personalizado puede usar un generador de editores y agregar información sobre el editor al Registro. Sin embargo, el tipo de proyecto asociado al editor personalizado puede crear instancias del editor personalizado de otras maneras.

Un editor personalizado puede usar la activación local o la inserción simplificada para implementar una vista.

Editores externos

Los editores externos son editores que no están integrados en Visual Studio, como Microsoft Word, Bloc de notas o Microsoft FrontPage. Puede llamar a este editor si, por ejemplo, está pasando texto a él desde su VSPackage. Los editores externos se registran y se pueden usar fuera de Visual Studio. Cuando se llama a un editor externo y se puede incrustar en una ventana host, aparece en una ventana del IDE. Si no es así, el IDE crea una ventana independiente para él.

El IsDocumentInProject método establece la prioridad del documento mediante la VSDOCUMENTPRIORITY enumeración . Si se especifica el DP_External valor, un editor externo puede abrir el archivo.

Decisiones de diseño del editor

Las siguientes preguntas de diseño le ayudarán a elegir el tipo de editor más adecuado para la aplicación:

  • ¿La aplicación guardará sus datos en archivos o no? Si guardará sus datos en archivos, ¿estarán en un formato personalizado o estándar?

    Si usa un formato de archivo estándar, otros tipos de proyecto además del proyecto podrán abrir y leer y escribir datos en ellos. Sin embargo, si usa un formato de archivo personalizado, solo el tipo de proyecto podrá abrir y leer y escribir datos en ellos.

    Si el proyecto usa archivos, debe personalizar el editor estándar. Si el proyecto no usa archivos, sino que usa elementos en una base de datos u otro repositorio, debe crear un editor personalizado.

  • ¿El editor necesita hospedar controles ActiveX?

    Si el editor hospeda controles ActiveX, implemente un editor de activación local, como se describe en Activación local. Si no hospeda controles ActiveX, use un editor de inserción simplificado o personalice el editor predeterminado de Visual Studio.

  • ¿El editor admitirá varias vistas? Debe admitir varias vistas si desea que las vistas del editor sean visibles al mismo tiempo que el editor predeterminado.

    Si el editor necesita admitir varias vistas, los datos del documento y los objetos de vista del documento para el editor deben ser objetos independientes. Para obtener más información, consulte Compatibilidad con varias vistas de documentos.

    Si el editor admite varias vistas, ¿tiene previsto usar la implementación del búfer de texto (VsTextBuffer objeto) del editor principal de Visual Studio para el objeto de datos del documento? Es decir, ¿desea admitir la vista del editor en paralelo con el editor principal de Visual Studio? La capacidad de hacerlo es la base del diseñador de formularios.

  • Si necesita hospedar un editor externo, ¿se puede insertar el editor dentro de Visual Studio?

    Si se puede incrustar, debe crear una ventana host para el editor externo y, a continuación, llamar al IsDocumentInProject método y establecer el VSDOCUMENTPRIORITY valor de enumeración en DP_External. Si el editor no se puede incrustar, el IDE creará automáticamente una ventana independiente para él.

En esta sección

Tutorial: Creación de un editor personalizado
Explica cómo crear un editor personalizado.

Tutorial: Adición de características a un editor personalizado
Explica cómo agregar características a un editor personalizado.

Configuración de metadatos y inicialización del diseñador
Explica cómo inicializar un diseñador.

Proporcionar compatibilidad para deshacer a los diseñadores
Explica cómo proporcionar compatibilidad para deshacer para diseñadores.

Coloración de sintaxis en editores personalizados
Explica la diferencia entre el color de sintaxis en el editor principal y en los editores personalizados.

Datos de documento y vista de documentos en editores personalizados
Explica cómo implementar datos de documentos y vistas de documento en editores personalizados.