Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Um VSPackage declara seus itens de menu e seus estados padrão por meio do arquivo de tabela de comandos do Visual Studio (.vsct). O IDE (ambiente de desenvolvimento integrado) do Visual Studio exibe os itens de menu em seus estados padrão até que o VSPackage seja carregado. Posteriormente, o QueryStatus método é chamado para habilitar ou desabilitar itens de menu.
Um VSPackage pode definir uma chave de registro para que ele possa ser carregado automaticamente dependendo de um contexto de interface de comando do usuário; no entanto, normalmente um VSPackage de controle de versão deve ser carregado sob demanda, em vez de apenas mudar para um contexto específico de interface do usuário. Para obter mais informações sobre a chave do Registro AutoLoadPackages , consulte Gerenciar VSPackages.
Interface do usuário do VSPackage
Um pacote de controle do código-fonte é implementado como um VSPackage e não usa nenhuma interface do usuário do Visual Studio. Cada VSPackage de controle do código-fonte deve especificar seus próprios elementos de interface do usuário, como itens de menu, grupos de menus, janelas de ferramentas, barras de ferramentas e qualquer interface do usuário necessária para definir opções específicas ao VSPackage de controle do código-fonte. Esses elementos de interface do usuário podem ser habilitados estaticamente ou dinamicamente. Elementos de interface do usuário estáticos são definidos em um arquivo .vsct e são exibidos se o VSPackage é carregado ou não. Elementos dinâmicos da interface do usuário podem estar visíveis dependendo de um contexto de interface do usuário de comando específico, como vsContextNoSolution, ou como resultado de uma chamada do método QueryStatus. A visibilidade dos elementos dinâmicos da interface do usuário está em conformidade com a estratégia de carregamento tardio dos VSPackages.
Restrições da UI nos VSPackages de controle de código-fonte
Como o VSPackage de controle do código-fonte não pode ser removido da IDE depois de carregado, o VSPackage deve ser capaz de entrar em um estado inativo. Quando um VSPackage recebe uma notificação de que ele não está mais ativo, o VSPackage desabilita sua interface do usuário e ignora qualquer interação externa do IDE. A implementação QueryStatus do método do VSPackage deve ocultar comandos quando o VSPackage não estiver ativo.
Cada VSPackage de controle do código-fonte deve implementar a IVsSccProvider interface. Dois métodos na interface SetActive e SetInactivedevem ser implementados pelo VSPackage.
O VSPackage de controle do código-fonte pode ter assinado vários eventos IDE, que são implementados pelo IVsSolutionEvents3, IVsTrackProjectDocumentsEvents2, entre outros. Além disso, o VSPackage pode ter implementado interfaces de retorno de chamada habilitadas pelo registro, como o IVsSolutionPersistence. Todas essas interfaces devem ser ignoradas quando inativas.
A lista a seguir mostra as interfaces afetadas pelo estado ativo de um VSPackage de controle do código-fonte:
Acompanhe eventos de documentos do projeto.
Eventos de solução.
Interfaces de persistência da solução. Quando inativos, os pacotes não devem gravar em arquivos .sln e .suo.
Extensores de propriedade.
As interfaces necessárias IVsQueryEditQuerySave2 e IVsSccManager2, assim como quaisquer interfaces opcionais associadas ao controle do código-fonte, não são chamadas quando o VSPackage de controle do código-fonte está inativo.
Quando a IDE do Visual Studio é iniciada, o Visual Studio define o contexto de interface de usuário do comando como a ID do VSPackage do controle de código-fonte padrão atual. Isso faz com que a interface do usuário estática do VSPackage de controle do código-fonte ativo apareça no IDE sem realmente carregar o VSPackage. O Visual Studio pausa para que o VSPackage se registre com o Visual Studio através do IVsRegisterScciProvider antes de fazer quaisquer chamadas para o VSPackage.
A tabela a seguir descreve detalhes específicos sobre como o IDE do Visual Studio oculta diferentes itens de interface do usuário.
| Item de interface do usuário | Description |
|---|---|
| Menus e barras de ferramentas | O pacote de controle do código-fonte deve definir o menu inicial e os estados de visibilidade da barra de ferramentas para a ID do pacote de controle do código-fonte na seção VisibilityConstraints do arquivo .vsct . Isso permite que o IDE do Visual Studio defina o estado dos itens de menu adequadamente sem carregar o VSPackage e chamar uma implementação do QueryStatus método. |
| Janelas de ferramentas | O VSPackage de controle do código-fonte oculta todas as janelas de ferramentas que possui quando torna-se inativo. |
| Páginas de opções específicas de controle de código-fonte do VSPackage | A chave do Registro HKLM\SOFTWARE\Microsoft\VisualStudio\X.Y\ToolsOptionsPages\VisibilityCmdUIContexts permite que um VSPackage defina os contextos nos quais ele exige que suas páginas de opções sejam exibidas. Uma entrada do Registro sob essa chave teria que ser criada usando a SID (ID de serviço) do serviço de controle do código-fonte e atribuindo-lhe um valor DWORD de 1. Sempre que um evento de UI ocorrer em um contexto no qual o VSPackage de controle de código-fonte está registrado, o VSPackage será chamado caso esteja ativo. |