Suporte a ferramentas de navegação de símbolo
Pesquisador de objetos, o modo de exibição de classe, Navegador de chamada e Find Symbol Results ferramentas fornecem funcionalidades no Visual Studio de navegação do símbolo. Essas ferramentas exibem modos de exibição de árvore hierárquica de símbolos e mostram as relações entre os símbolos na árvore. Os símbolos podem representar objetos, namespaces, classes, membros de classe e outros elementos de linguagem contidos em vários componentes. Os componentes incluem projetos Visual Studio, externos .NET Framework componentes e bibliotecas de tipos (. tlb). Para obter mais informações, consulte Exibindo a estrutura do código.
Bibliotecas de símbolos de navegação
Como um implementador de idioma, você pode estender os recursos de navegação de símbolo de Visual Studio com a criação de bibliotecas que controlar os símbolos nos seus componentes e fornecem as listas de símbolos para o Gerenciador de objetos Visual Studio por meio de um conjunto de interfaces. Uma biblioteca é descrita pela IVsSimpleLibrary2 interface. O Gerenciador de objetos Visual Studio responde às solicitações para novos dados das ferramentas de navegação de símbolo, obtendo os dados das bibliotecas e organizá-las. Subseqüentemente, ele preenche ou atualiza as ferramentas com os dados solicitados. Para obter uma referência para o Gerenciador de objetos Visual Studio, IVsObjectManager2, passar o SVsObjectManager serviço de identificação para o GetService método.
Cada biblioteca deve registrar o Gerenciador de objeto de Visual Studio, que coleta as informações sobre todas as bibliotecas. Para registrar uma biblioteca, chame o RegisterSimpleLibrary método. Dependendo de qual ferramenta inicia a solicitação, o Gerenciador de objetos Visual Studio localiza a biblioteca apropriada e solicita dados. Os dados trafegam entre as bibliotecas e o Visual Studio nas listas de símbolos descritos pelo Gerenciador de objetos do IVsSimpleObjectList2 interface.
O Visual Studio Gerenciador de objetos é responsável por atualizar periodicamente a ferramentas de navegação de símbolo para refletir os dados mais atuais contidos nas bibliotecas.
O diagrama a seguir contém uma amostra dos principais elementos do processo de troca de dados/solicitações entre uma biblioteca e o Gerenciador de objetos Visual Studio. As interfaces no diagrama são parte de um aplicativo de código gerenciado.
Para fornecer as listas de símbolos para o Gerenciador de objetos Visual Studio, você primeiro deve registrar a biblioteca com o Gerenciador de objetos Visual Studio, chamando o RegisterSimpleLibrary método. Depois que a biblioteca está registrada, o Gerenciador de objetos Visual Studio solicitações determinadas informações sobre os recursos da biblioteca. Por exemplo, ele solicita os sinalizadores de biblioteca e suporte para categorias chamando o GetLibFlags2 e GetSupportedCategoryFields2 métodos. Em algum momento, quando uma das ferramentas solicita dados desta biblioteca, o Gerenciador de objetos solicita a lista de nível superior de símbolos, chamando o GetList2 método. Em resposta, a biblioteca fabrica uma lista de símbolos e expõe para o Gerenciador de objetos por meio de Visual Studio a IVsSimpleObjectList2 interface. O Visual Studio o Gerenciador de objeto determina quantos itens estão na lista chamando o GetItemCount método. Todas as solicitações a seguir estão relacionadas a determinado item na lista e fornecem o número de índice do item em cada solicitação. O Gerenciador de objetos Visual Studio prossegue para coletar as informações sobre o tipo, a acessibilidade e outras propriedades do item chamando o GetCategoryField2 método.
Ele determina o nome do item chamando o GetTextWithOwnership método e solicita as informações de ícone chamando o GetDisplayData método. O ícone é exibido à esquerda do nome do item e mostra o tipo de item, a acessibilidade e outras propriedades.
O Visual Studio chamadas de Gerenciador de objeto do GetExpandable3 método para determinar se um determinado item de lista é expansível e possui itens filhos. Se a interface do usuário envia uma solicitação para expandir um elemento, o Gerenciador de objetos solicita a lista de filhos de símbolos, chamando o GetList2 método. O processo continua com diferentes partes da árvore que está sendo criado sob demanda.
Dica
Para implementar um provedor de símbolo de código nativo, use o IVsLibrary2 e IVsObjectList2 interfaces.
Consulte também
Tarefas
Como: registrar uma biblioteca com o Gerenciador de objeto
Como: expor as listas de símbolos fornecidos pela biblioteca para o Gerenciador de objetos