Compartilhar via


Dados do documento e exibição do documento em editores personalizados

Um editor personalizado consiste em duas partes: um objeto de dados de documento e um objeto de exibição de documento. Como os nomes sugerem, o objeto de dados do documento representa os dados de texto a serem exibidos. Da mesma forma, o objeto de exibição de documento (ou "exibição") representa uma ou mais janelas nas quais exibir o objeto de dados do documento.

Objeto de dados do documento

Um objeto de dados de documento é uma representação de dados de texto no buffer de texto. É um objeto COM que armazena texto do documento e outras informações. O objeto de dados do documento também manipula a persistência do documento e permite várias exibições de seus dados. Para obter mais informações, consulte

DocumentData[] e Janelas de Documentos.

Editores e designers personalizados podem optar por usar o VsTextBuffer objeto ou seu próprio buffer personalizado. VsTextBuffer segue o modelo de incorporação simplificado para um editor padrão, oferece suporte a vários modos de exibição e fornece interfaces de eventos que são usadas para gerenciar vários modos de exibição.

Objeto de exibição de documento

Uma janela que exibe código e outro texto é conhecida como exibição ou exibição de documento. Ao criar um editor, você pode escolher uma única exibição, na qual o texto é exibido em uma única janela. Ou você pode escolher uma exibição múltipla, na qual o texto é exibido em mais de uma janela. Sua escolha depende de sua aplicação. Por exemplo, se você precisar de edição lado a lado, escolha vários modos de exibição. Cada modo de exibição é associado a uma entrada na tabela de documentos em execução (RDT) do ambiente de desenvolvimento integrado (IDE). As janelas de exibição pertencem a um projeto ou objeto IVsHierarchy .

Se o editor oferecer suporte a várias exibições de um objeto de dados de documento, os dados do documento e os objetos de exibição do documento deverão ser separados. Caso contrário, eles podem ser agrupados. Para obter mais informações, consulte Suporte a várias exibições de documento.

O IDE notifica exibições sobre eventos (por exemplo, quando uma solução que contém um documento é fechada) combinando um identificador de item (ItemID) para cada entrada na tabela de documentos em execução. Para obter mais informações sobre isso, consulte Executando tabela de documentos.

Há duas opções para criar um modo de exibição para um editor personalizado. Um deles é o modelo de ativação in-loco, em que a exibição é hospedada em uma janela usando um controle ActiveX ou um objeto de dados do documento. O segundo é o modelo de incorporação simplificado, onde o modo de exibição é hospedado pelo Visual Studio e IVsWindowPane é implementado para manipular comandos de janela. Para obter informações sobre o modelo de ativação in-loco, consulte Ativação in-loco. Para obter informações sobre o modelo de incorporação simplificado, consulte Incorporação simplificada.