Como: fornecer suporte de estrutura de tópicos expandida
Há duas opções para estender o suporte de estrutura de tópicos para o seu idioma, além de oferecer suporte a Recolher para definições de comando. Você pode adicionar regiões controlado pelo editor de contorno e adicionar regiões de estrutura de tópicos controlado pelo cliente.
Adicionando controlado pelo Editor regiões de estrutura de tópicos
Use essa abordagem para criar uma região de estrutura de tópicos e, em seguida, permitir que o editor controlar se a região estiver expandida, recolhido e assim por diante. As duas opções para fornecer suporte de estrutura de tópicos, esta opção é menos robusto. Para essa opção, você deve criar uma nova região de estrutura de tópicos em um intervalo especificado de texto usando AddOutlineRegions. Depois que essa região é criado, seu comportamento é controlado pelo editor. Use o procedimento a seguir para implementar regiões controlado pelo editor de contorno.
Para implementar uma região controlado pelo editor de contorno
Call QueryService forSVsTextManager
Isso retorna um ponteiro para IVsHiddenTextManager.
Chame GetHiddenTextSession, passing em um ponteiro para um buffer de texto indicado. Isso retorna um ponteiro para o IVsHiddenTextSession o objeto para o buffer.
Call QueryInterface on IVsHiddenTextSession for a pointer to IVsOutliningSession.
Chame AddOutlineRegions para adicionar um ou mais novas regiões de estrutura de tópicos ao mesmo tempo.
Esse método permite que você especifique o trecho de texto da estrutura de tópicos, se as áreas de estrutura de tópicos existentes são removidas ou preservadas e se a região de estrutura de tópicos está expandida ou recolhida por padrão.
A adição de regiões de estrutura de tópicos controlado pelo cliente
Use essa abordagem à estrutura de tópicos de implementar controlado pelo cliente (ou inteligente), como que usado pelo Visual C# e Visual Basic serviços de linguagem. Um serviço de linguagem que gerencia sua própria estrutura de tópicos monitora o conteúdo do buffer de texto para destruir o antigo regiões de estrutura de tópicos quando se torna inválido e criar novas regiões de estrutura de tópicos, conforme necessário.
Para implementar uma região de estrutura de tópicos controlado pelo cliente
Call QueryService for SVsTextManager. Isso retorna um ponteiro para IVsHiddenTextManager.
Chame GetHiddenTextSession, passing em um ponteiro para um buffer de texto indicado. Isso determina se uma sessão de texto oculto já existe para o buffer.
Se o texto já existe uma sessão, então você não precisará criar uma e um ponteiro para o existente IVsHiddenTextSession objeto é retornado. Use esse ponteiro para enumerar e criar regiões de estrutura de tópicos. Caso contrário, chamar CreateHiddenTextSession para criar uma sessão de texto oculto para o buffer. Um ponteiro para o IVsHiddenTextSession objeto é retornado.
Dica
Quando você chama CreateHiddenTextSession, você pode especificar um cliente de texto oculto (ou seja, um IVsHiddenTextClient objeto).Este cliente notifica você quando um texto oculto ou região de estrutura de tópicos está expandido ou recolhido pelo usuário.
Chame AddHiddenRegions estrutura) parâmetro: Especifique um valor de hrtCollapsible na iType membro do NewHiddenRegion estrutura para indicar que você está criando uma região de estrutura de tópicos, em vez de uma região oculta. Especifique se a região é controlado pelo cliente ou controlado pelo editor na dwBehavior membro da NewHiddenRegion estrutura. A implementação de estrutura de tópicos inteligente pode conter uma mistura de regiões de estrutura de tópicos controlado pelo editor e cliente. Especificar o texto do banner é exibido quando a região de estrutura de tópicos é recolhida, como "...", no pszBanner membro da NewHiddenRegion estrutura. Texto da faixa do editor padrão para uma região oculta é "...".