Exibição de documentos e dados 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 Documente o Windows.

Editores e designers personalizados podem optar por usar o VsTextBuffer objeto ou seu próprio buffer personalizado. VsTextBuffer segue o modelo de inserção simplificado para um editor padrão, dá suporte a vários modos de exibição e fornece interfaces de evento 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 visão ou visã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 do aplicativo. Por exemplo, se você precisar de edição lado a lado, escolherá o modo de exibição múltiplo. Cada exibição está associada 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 a um IVsHierarchy objeto.

Se o editor der suporte a várias exibições de um objeto de dados de documento, os dados do documento e os objetos de exibição de 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) correspondendo a um identificador de item (ItemID) para cada entrada na tabela de documentos em execução. Para obter mais informações sobre isso, consulte Como executar a 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 embutida, em que a exibição é hospedada em uma janela usando um controle ActiveX ou um objeto de dados de documento. O segundo é o modelo de inserção simplificado, em que o modo de exibição é hospedado pelo Visual Studio e IVsWindowPane é implementado para lidar com comandos de janela. Para obter informações sobre o modelo de ativação local, consulte a ativação local. Para obter informações sobre o modelo de inserção simplificado, consulte a inserção simplificada.