Criar editores e designers personalizados

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

  • O editor Visual Studio principal

  • Editores personalizados

  • Editores externos

  • Designers

As informações a seguir ajudam você a escolher o tipo de editor de que precisa.

Tipos de editor

Para obter informações sobre o Visual Studio principal, consulte Estender o editor e osserviços de linguagem .

Editores personalizados

Um editor personalizado é projetado para funcionar 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 você 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 Visual Studio padrão.

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 insinuar o editor personalizado de outras maneiras.

Um editor personalizado pode usar a ativação in-locar 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 Microsoft Word, Bloco de notas ou Microsoft FrontPage. Você pode chamar esse editor se, por exemplo, estiver passando texto para ele do VSPackage. Editores externos se registram e podem ser usados fora Visual Studio. Quando você chama um editor externo e ele pode ser inserido em uma janela de host, ele aparece em uma janela no IDE. Caso não seja, o IDE criará uma janela separada para ela.

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

Decisões de design do editor

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

  • Seu aplicativo salvará seus dados em arquivos ou não? Se ele 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 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 projeto usar arquivos, você deverá personalizar o editor padrão. Se o projeto não usar arquivos, mas usar itens em um banco de dados ou em outro repositório, você deverá criar um editor personalizado.

  • Seu editor precisa hospedar controles ActiveX dados?

    Se o editor hospeda ActiveX controles, 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 Visual Studio o editor padrão.

  • Seu editor dará suporte a várias exibições? Você deverá dar suporte a várias exibições se quiser que as exibições do editor sejam visíveis ao mesmo tempo que o editor padrão.

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

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

  • Se você precisar hospedar um editor externo, o editor poderá ser inserido dentro de Visual Studio ?

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

Nesta seção

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

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 para designers
Explica como fornecer suporte a desfazer para designers.

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

Exibição de documentos e dados de documentos em editores personalizados
Explica como implementar dados de documentos e exibições de documentos em editores personalizados.

Interfaces herddas no editor
Explica como acessar o editor principal por meio da API herdada.

Desenvolver um serviço de linguagem herddo
Explica como implementar um serviço de linguagem.

Estender outras partes do Visual Studio
Explica como criar elementos de interface do usuário que corresponderem ao restante do Visual Studio .

Confira também