Pesquisando e Navegando pelo Código no VS 2010 (Série de posts sobre VS 2010 e .NET 4.0)


Este é o nono de uma série de posts que estou escrevendo sobre o próximo lançamento do VS 2010 e .NET 4. No post de hoje eu vou cobrir alguns dos recursos de pesquisa e navegação de código que estão agora incorporados no VS 2010.

Pesquisando e Navegando pelo Código

Os desenvolvedores precisam ser capazes de facilmente navegar, pesquisar e entender a base de código em que estão trabalhando. Em estudos de usabilidade que fizemos, nós geralmente percebemos que os desenvolvedores gastam mais tempo lendo, analisando e pesquisando o código existente do que realmente escrevendo código novo.

O editor de código do VS 2010 acrescenta algumas características agradáveis que lhe permite de forma mais produtiva buscar e navegar pela base de código, e permiti a você compreender mais facilmente como o código está sendo usado em uma solução.

Pesquisando e Navegando pelo Código Fonte da ASP.NET MVC

Neste post eu vou usar a base de código do framework da ASP.NET MVC (que tem milhares de linhas de código) para ajudar a demonstrar alguns dos novos recursos de pesquisa e navegação de código do VS 2010. Se você tiver o VS 2010 Beta 2 instalado, você pode acompanhar este post fazendo o download e abrindo o código base do framework da ASP.NET MVC diponível aqui.

Você deve perceber que o desempenho dos recursos demonstrados a seguir é muito rápido neste projeto - apesar do mesmo conter milhares de linhas de código. Todas as características que estou mostrando a seguir estão também incorporadas no VS 2010 (e funcionam para todos os tipos de projeto e para ambas as linguagens VB e C#).

Suporte a "Navegar Para" do VS 2010

Ser capaz de pesquisar e navegar rapidamente pelo código é importante, em ambas soluções grandes e pequenas.

O Visual Studio 2010 agora suporta um novo atalho de teclado (Ctrl + vírgula) (significando que a tecla Ctrl é pressionada juntamente com a tecla de vírgula). Quando você pressiona a combinação (Ctrl + vírgula), uma nova janela de diálogo "Navegar Para" do VS 2010 aparecerá, a qual permite procurar rapidamente os tipos, arquivos, variáveis e os membros dentro de sua solução - e, em seguida, abrir e navegar por eles:

A janela de diálogo "Navigate To" (Navegar Para) fornece uma interface de busca rápida e incremental - com resultados imediatos tão logo você comece a digitar os termos da busca. Por exemplo, digite "cont" (sem pressionar enter) e você verá que 176 resultados imediatamente aparecerão na lista de resultados tão logo você comece a digitar:

Digite alguns caracteres mais e você verá a lista ser filtrada automaticamente, mostrando apenas os resultados que condizem com a palavra "controller":

Você pode usar a barra de rolagem para percorrer os resultados - ou, alternativamente, pressione a tecla TAB e em seguida, use as setas de cursor, se você não quiser retirar as mãos do teclado. Você verá que a janela de diálogo "Navegar Para" lista todos os tipos de resultados que correspondem ao termo de sua pesquisa - incluindo os nomes de tipo, nomes de propriedades e métodos, declarações de campo e nomes de arquivo:

Selecionando qualquer um dos resultados na lista de resultados abrirá o arquivo fonte relevante no VS 2010 (se o mesmo já não estiver aberto) e te levará imediatamente para o local relevante no código (destacando o termo procurado dentro do arquivo):

Capacidades Interessantes de Pesquisa Fuzzy

A caixa de pesquisa "Navegar Para" suporta algumas capacidades de "pesquisa fuzzy" que lhe permite executar filtros inteligentes e pesquisar sem ter que saber exatamente o nome da coisa que você está procurando. Estas pesquisas funcionam bem com a interface de pesquisa incremental/imediata da janela de diálogo - e permitirá a você refinar suas pesquisas para obter resultados em tempo real enquanto você digita.

Para testar esta funcionalidade, vamos primeiramente pesquisar usando a palavra "cache". Observe como os resultados da pesquisa não incluem apenas os itens que começam com a palavra "cache" -, mas também mostram qualquer resultado que contenha a palavra "cache":

Podemos adicionar várias palavras na caixa de texto de pesquisa para filtrar ainda mais os resultados. Por exemplo, a seguir estou filtrando a lista para incluir somente os resultados que têm ambas as palavras "cache" e "action" no nome:

Tipos e membros dentro do .NET Framework que usam um padrão de nomeação padrão chamado "Pascal Casing" - que significa que a primeira letra de cada palavra em um tipo ou entidade é capitalizado (em maiúsculo). A janela de diálogo "Navegar Para" permite, opcionalmente, a utilização desta convenção "Pascal Casing" para filtrar rapidamente os tipos. Basta digitar a primeira letra maiúscula de nomes de um tipo/membro para filtrar automaticamente em resultados que correspondem à convenção de nomes maiúsculos.

Por exemplo, digitar "AMS" irá filtrar os resultados a seguir (apenas os tipos e membros que têm palavras que começam com A, depois M, depois S):

A janela de diálogo "Navegar Para" permite a você rapidamente filtrar e localizar o código com um mínimo de digitação - e evita que você tenha que usar o mouse para abrir a aba Solution Explorer para clicar em um arquivo diretamente.

Veja a Hierarquia de Chamadas

Ter a capacidade de pesquisar e navegar pelo código rapidamente é ótimo. Ser capaz também de descobrir rapidamente como o código está sendo usado é ainda melhor. O VS 2010 introduz um novo recurso chamado “View Call Hierarchy” (Ver a Hierarquia de Chamadas) que lhe permite saber rapidamente se um determinado método ou propriedade dentro do seu código está sendo chamado, e permite que você rapidamente atravesse o grafo da árvore de chamadas de toda a sua base de código (sem ter que executar ou debugar a solução).

Para usar este recurso, basta selecionar um método ou o nome de uma propriedade dentro de seu código, e em seguida, digite o atalho de teclado (Ctrl+K, Ctrl+T), ou clique no botão direito do mouse e selecione o comando do menu de contexto "Exibir Hierarquia de Chamadas":

Isso fará com que uma nova janela de ferramentas chamada "Hierarquia de Chamadas" seja mostrada, a qual por padrão é exibida sob o editor de código. A seguir você pode ver como a janela "Hierarquia de Chamadas" está exibindo os dois métodos dentro da nossa solução que invocam o método ViewPage.RenderView() que selecionamos acima.

Podemos então opcionalmente detalhar hierarquicamente para o primeiro método "RenderViewAndRestoreContentType" para ver quem o chama:

Para os métodos/propriedades virtuais você também pode usar a janela de hierarquia de chamadas para ver quais tipos são derivados para então sobreescrever os mesmos.

Com um duplo clique em qualquer dos membros dentro da janela "Hierarquia de Chamadas" será aberto o arquivo fonte apropriado e te levará imediatamente ao local de origem:

Isso permite a você navegar rapidamente por toda base de código e ao mesmo tempo entender melhor as relações entre as classes e métodos à medida em que você codifica.

Referências Destacadas

Com o VS 2010, quando você selecionar ou destacar uma variável / parâmetro / declaração de campo, dentro do editor de código, todos os usos subseqüentes dele são automaticamente destacados para você dentro do editor. Isto torna mais fácil identificar rapidamente onde e como uma variável ou parâmetro está sendo usado.

Por exemplo, quando nós selecionamos o parâmetro "controllerContext" passado para o método ControllerActionInvoker.GetParameterValue() no editor a seguir, note como os 4 usos deste dentro desse método também já são automaticamente destacados:

Se eu selecionar uma variável local dentro do método, todos os lugares onde ela é usada também são automaticamente destacados:

Se múltiplas ocorrências são destacadas, você pode alternar entre elas usando a tecla (Ctrl-Shift-seta para cima) e (Ctrl-Shift-seta para baixo) para mover rapidamente o cursor para o símbolo anterior ou para o próximo símbolo destacado.

Resumo

O novo editor de texto do VS 2010 torna mais fácil pesquisar rapidamente, navegar e explorar o código dentro de um projeto ou solução. O desempenho destas operações é muito rápido (mesmo com uma grande base de código) e são mantidas atualizadas à medida que você trabalha no projeto e faz alterações no mesmo. O resultado final permite que você seja muito mais produtivo.

Espero que ajude,

Scott

[P.S. Além de escrever posts neste blog, eu tenho usado o Twitter recentemente para disponibilizar posts rápidos e compartilhar links. Você pode me seguir no Twitter em http://www.twitter.com/scottgu (@scottgu é o meu nome no Twitter)]

 

Texto traduzido do post original por Leniel Macaferi.

No Comments