Criar editores e designers personalizados

O ambiente de desenvolvimento integrado (IDE) do Visual Studio pode hospedar diferentes tipos de editor:

  • O editor principal do Visual Studio

  • Editores personalizados

  • Editores Externos

  • Designers

As informações a seguir ajudam você a escolher o tipo de editor necessário.

Tipos de editor

Para obter informações sobre o editor principal do Visual Studio, consulte Estender o editor e os serviços de idioma.

Editores personalizados

Um editor personalizado é aquele que é projetado para trabalhar em circunstâncias especializadas. Por exemplo, você pode criar um editor cuja função é ler e gravar dados em um repositório específico, como um servidor Microsoft Exchange. Escolha um editor personalizado se quiser um editor que funcione apenas com o tipo de projeto ou se quiser um editor que tenha apenas alguns comandos específicos. Observe, no entanto, que os usuários não poderão usar um editor personalizado para editar projetos padrão do Visual Studio.

Um editor personalizado pode usar uma fábrica de editores e adicionar informações sobre o editor ao registro. No entanto, o tipo de projeto associado ao editor personalizado pode instanciar o editor personalizado de outras maneiras.

Um editor personalizado pode usar a ativação in-loco ou a incorporação simplificada para implementar uma exibição.

Editores externos

Editores externos são editores que não estão integrados ao Visual Studio, como o Microsoft Word, bloco de notas ou Microsoft FrontPage. Você pode chamar esse editor se, por exemplo, você estiver passando texto para ele do seu VSPackage. Editores externos se registram e podem ser usados fora do Visual Studio. Quando você chama um editor externo e ele pode ser incorporado em uma janela do host, ele aparece em uma janela no IDE. Caso contrário, o IDE cria uma janela separada para ele.

O IsDocumentInProject método define a prioridade do documento usando a VSDOCUMENTPRIORITY enumeração. Se o valor for especificado, o DP_External arquivo poderá ser aberto por um editor externo.

Decisões de design do editor

As seguintes perguntas de design ajudarão você a escolher o tipo de editor mais adequado ao seu aplicativo:

  • Seu aplicativo salvará seus dados em arquivos ou não? Se ele vai salvar seus dados em arquivos, eles estarão em um formato personalizado ou padrão?

    Se você usar um formato de arquivo padrão, outros tipos de projeto, além do seu projeto, poderão abrir e ler/gravar dados neles. No entanto, se você usar um formato de arquivo personalizado, somente o tipo de projeto poderá abrir e ler/gravar dados neles.

    Se o seu projeto usa arquivos, então você deve personalizar o editor padrão. Se o seu projeto não usa arquivos, mas sim itens em um banco de dados ou outro repositório, então você deve criar um editor personalizado.

  • Seu editor precisa hospedar controles ActiveX?

    Se o editor hospedar controles ActiveX, implemente um editor de ativação in-loco, conforme descrito em Ativação in-loco. Se ele não hospedar controles ActiveX, use um editor de incorporação simplificado ou personalize o editor padrão do Visual Studio.

  • Seu editor suportará várias visualizações? Você deve oferecer suporte a vários modos de exibição se quiser que os modos de exibição do editor fiquem visíveis ao mesmo tempo que o editor padrão.

    Se o editor precisar oferecer suporte a vários modos de exibição, os dados do documento e os objetos de exibição do documento para o editor deverão ser objetos separados. Para obter mais informações, consulte Suporte a várias exibições de documento.

    Se o editor oferecer suporte a vários modos de exibição, você planeja usar a implementação de buffer de texto (VsTextBuffer objeto) do editor principal do Visual Studio para seu objeto de dados do documento? Ou seja, você deseja oferecer suporte à exibição do editor lado a lado com o editor principal do Visual Studio? A capacidade de fazer isso é a base do designer de formulários.

  • Se você precisar hospedar um editor externo, o editor pode ser incorporado dentro do Visual Studio?

    Se ele puder ser incorporado, você deverá criar uma janela de host para o editor externo e, em seguida, chamar o método e definir o IsDocumentInProjectVSDOCUMENTPRIORITY valor de enumeração como DP_External. Se o editor não puder ser incorporado, o IDE criará automaticamente uma janela separada para ele.

Nesta seção

Demonstra Passo a passo: Criar um editor personalizado
Explica como criar um editor personalizado.

Demonstra Passo a passo: Adicionar recursos a um editor personalizado
Explica como adicionar recursos a um editor personalizado.

Inicialização do designer e configuração de metadados
Explica como inicializar um designer.

Fornecer suporte de desfazer aos projetistas
Explica como fornecer suporte de desfazer para designers.

Coloração de sintaxe em editores personalizados
Explica a diferença entre a coloração da sintaxe no editor principal e nos editores personalizados.

Dados do documento e exibição do documento em editores personalizados
Explica como implementar dados de documento e exibições de documento em editores personalizados.