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.