Recursos em nível de projeto

O ReSharper fornece um conjunto de recursos que são úteis quando aplicados a projetos ou à solução inteira, em oposição a auxiliares de codificação individuais.

Esses recursos incluem o ReSharper Build para otimizar a maneira como o MSBuild compila seus projetos, diagramas que exibem dependências entre projetos ou tipos, bem como uma maneira de localizar um código específico que implementa essas dependências, refatorações para otimizar referências nos projetos da sua solução e várias outras funcionalidades.

ReSharper Build

Compilação do ReSharper

O ReSharper Build é uma ferramenta de compilação incremental fora de processos que é capaz de tirar proveito de vários processos, visualiza diferentes tipos de status de compilação de projeto e é otimizada para soluções de grande porte com muitas dependências.

O ReSharper Build substitui o gerenciamento de compilações do Visual Studio por um sistema que aplica heurística para compilar apenas projetos que precisam ser atualizados. Observe que ele não substitui o MSBuild, e seus projetos ainda são criados normalmente.

Gerenciamento de configurações de execução

Configurações de execução

O ReSharper fornece novas maneiras de executar código no Visual Studio com Configurações de execução. Existem três tipos de configurações de execução:

  • Project — Com esse tipo de configuração, você pode executar ou depurar qualquer projeto executável na sua solução. Isso pode ser útil em uma solução de grande porte com vários projetos executáveis.
  • Static method — Esse tipo de configuração permite executar ou depurar qualquer método estático público sem parâmetros. Precisa depurar um algoritmo complicado isoladamente? Basta criar um método estático e ter uma configuração de execução configurada.
  • Executable — Usando esse tipo de configuração, você pode executar ou depurar qualquer arquivo executável. Se você escolher o comando de depuração, o ReSharper processará o executável e fará o Visual Studio anexar ao seu processo. Um bom caso de uso para esse tipo de configuração é o desenvolvimento de um plug-in para outro programa no qual você precisa criar uma configuração de execução complexa.

Você também pode executar métodos estáticos sem criar uma configuração de execução permanente: basta pressionar Alt+Enter e usar o submenu Debug na lista de ações.

Para executar ou depurar a configuração ativa, que é o projeto de inicialização do Visual Studio por padrão, pressione Ctrl+F5 ou F5. Para gerenciar configurações de execução, pressione Ctrl+Shift+Alt+R ou escolha ReSharper | Tools | Run Configurations no menu.

Visualizador de dependências do projeto

Diagrama de dependências do projeto

Com o ReSharper, você pode explorar dependências de projeto na sua solução usando uma representação visual da arquitetura da solução. A qualquer momento, você pode abrir a exibição Architecture (ReSharper | Architecture | Show Project Dependency Diagram) e explorar as dependências do projeto sem compilar nada.

Nessa exibição, é possível realizar refatorações (como Adjust Namespaces ou Remove Unused References), ações de navegação e outros comandos úteis. Além disso, você pode salvar um instantâneo de dependência e compará-lo ao estado atual da sua solução à medida que ela evolui.

Type Dependency Diagram

Diagrama de dependências de tipo

O ReSharper permite que você estude visualmente como os tipos dependem um do outro na sua solução. No diagrama de dependências de tipo, você pode adicionar qualquer número de tipos de diferentes projetos ou assemblies compilados e visualizar os vários tipos de dependências entre eles. Além do comando do menu principal, ReSharper | Architecture | Show Type Dependency Diagram, existem várias maneiras de adicionar tipos ao diagrama: por exemplo, você pode adicionar todos os tipos da janela Find Results ou Hierarchy, de pop-ups que mostram resultados de navegação, do diagrama de dependências do projeto, arrastando e soltando tipos de outras janelas de ferramentas e muito mais.

Da mesma forma que o diagrama de dependência do projeto, muitas ações de navegação estão disponíveis diretamente no diagrama de dependências de tipo, como é o caso da refatoração Move to Folder, que funciona aqui com uma ação de arrastar e soltar.

Diagrama de dependências de assembly

Diagrama de dependências de assembly

O ReSharper também permite que você explore dependências entre assemblies compilados. Você pode criar um diagrama de qualquer número de assemblies e explorar como esses assemblies fazem referência uns aos outros.

Você pode invocar o diagrama em assemblies selecionados no Assembly Explorer e explorar as conexões que são estabelecidas entre esses assemblies em virtude de suas referências.

NuGet Browser window in ReSharper

Navegador NuGet

Com o ReSharper, você pode procurar tipos ou namespaces na galeria de pacotes do NuGet e instalar os pacotes que correspondem à sua pesquisa — tudo isso sem sair do Visual Studio. Tudo isso pode ser feito na janela NuGet Browser (ReSharper | Windows | NuGet Browser).

Você pode até mesmo iniciar a pesquisa diretamente do editor: pressione Alt+Enter em qualquer tipo ou namespace não resolvido e selecione Find on nuget.org para localizar e instalar um pacote NuGet ausente.

Adjust Namespaces refactoring

Ajustar namespaces

Alguns recursos de refatoração de código podem ser aplicados ao escopo de um projeto, a uma pasta de solução ou à toda a solução.

Por exemplo, a refatoração Adjust Namespaces ajuda a sincronizar namespaces com a estrutura de pastas em qualquer escopo, que pode ser tão grande quanto toda a sua solução. Ou seja, em um determinado arquivo de código, se um namespace não corresponder ao local do arquivo na estrutura do projeto, esse namespace será renomeado para manter a conformidade com o local do arquivo. Todas as diretivas de uso que fizerem referência aos namespaces modificados serão atualizadas de acordo.

Removing unused references

Remove Unused References

Outra refatoração em nível de projeto, Remove Unused References, ajuda a detectar e remover referências redundantes dos seus projetos para limpar sua solução.

Há também uma maneira de marcar referências como utilizadas em tempo de execução, o que é importante quando você está usando estruturas de injeção de dependências.

Ao marcar todas as referências carregadas implicitamente, você pode executar com segurança os comandos Optimize References e Remove Unused References do ReSharper sem desfazer referências que são necessárias em tempo de execução.

Find referenced code with ReSharper

Find Referenced Code/Find Dependent Code

Find Dependent Code permite localizar o código que depende de um projeto selecionado. Find Referenced Code funciona de maneira oposta, permitindo localizar referências de saída encontradas em um determinado escopo (que pode tão estreito quanto um método ou tão amplo quanto um projeto).

Os resultados da pesquisa de ambos os recursos são exibidos na janela Find Results ou, se um único uso for encontrado, o sinal de intercalação se moverá até o local correspondente.

Para localizar um código dependente ou referenciado, selecione um nó no Solution Explorer ou posicione o sinal de intercalação em um contêiner no editor de texto e escolha ReSharper | Find | Find Code Dependent on Module ou ReSharper | Find | Find Symbols External to Scope.

Assembly Explorer

Assembly Explorer

Essa janela simples ajuda você a abrir assemblies compilados e depois usar comandos de navegação e pesquisa para percorrê-los e explorá-los como se você estivesse trabalhando com o código-fonte. A expansão de um nó de assembly lista os namespaces dentro desse assembly, que podem ser expandidos ainda mais para tipos e membros de tipo, bem como para referências de assembly.

Se um determinado assembly for de seu interesse especial, o Assembly Explorer o ajudará a exportá-lo para um projeto do Visual Studio, para que você possa procurar o código-fonte e depois compilá-lo, executá-lo e depurá-lo.

Comando Collapse All no Solution Explorer

O ReSharper ajuda o Visual Studio quando se trata de gerenciar o estado dos nós no Solution Explorer. Quando você recolhe um projeto ou outro nó de alto nível no Solution Explorer, o Visual Studio comum não recolhe os nós que ele contêm. Como resultado, quando você expandir o mesmo projeto posteriormente, descobrirá que ele revela uma estrutura esporadicamente expandida.

Com o ReSharper, você pode simplesmente clicar com o botão direito do mouse no nó do Solution Explorer e selecionar Collapse All no menu de contexto — o nó selecionado será recolhido junto com qualquer um de seus nós filhos.

Collapse All é uma combinação perfeita para outro excelente recurso do ReSharper — Locate in Solution Explorer. Por exemplo, você pode começar recolhendo um projeto e continuar usando Locate in Solution Explorer para expandir os nós realmente necessários.

Locate in Solution Explorer

Esse prático recurso de navegação, disponível com Shift+Alt+L, permite que você realce um nó correspondente no Solution Explorer para qualquer arquivo que esteja atualmente aberto no editor de texto. O ReSharper realça o nó e rola automaticamente o Solution Explorer, permitindo que você veja realmente o nó realçado.

Isso é especialmente útil com uma solução massiva que possui dezenas a milhares de arquivos ou uma área de tela limitada que força a diminuição da janela do Solution Explorer até o mínimo. Além disso, o recurso combina bem com o comando Collapse All no Solution Explorer.

Salvar as configurações do ReSharper em várias camadas de configuração

Armazenamento distribuído de configurações do ReSharper

As configurações do ReSharper são salvas usando um modelo de armazenamento distribuído, o que significa que qualquer configuração ou grupo de configurações pode ser salvo separadamente, e o ReSharper combinará e aplicará todas elas à medida que for executado.

Os benefícios desse modelo incluem a possibilidade de ter configurações diferentes para soluções distintas, o compartilhamento configurações sem nenhum esforço, a importação e a exportação de configurações e muito mais. Ele pode ser especialmente útil para compartilhar configurações que devem ser iguais dentro da equipe: configurações de estilo de código, modelos de código, pesquisa estrutural e padrões de substituição.

Por padrão, existem três camadas de configuração: para todas as soluções no computador local, para a solução atual e para as configurações da solução compartilhadas. Você pode facilmente criar, gerenciar e compartilhar novas camadas, por exemplo, para configurações globais no âmbito da empresa.

Nota sobre atalhos

Todos os atalhos de teclado fornecidos nesta página estão disponíveis no mapa de teclas "Visual Studio" padrão do ReSharper. Para obter detalhes sobre os dois mapas de teclas do ReSharper, consulte a Documentação do ReSharper.