Novidades no ReSharper Ultimate 2019.3

O ReSharper Ultimate 2019.3 introduz um novo Localization Manager e dicas de nomes de tipos e oferece suporte ainda melhor para C# 8, C++20 e Unreal Engine. A navegação, os estilos de código e os testes de unidade foram aprimorados, e as Ferramentas de linha de comando para o ReSharper e o dotTrace agora funcionam no Linux e no macOS.

Baixar

Avaliação gratuita por 30 dias disponível

Gerenciador de tradução

Gerenciador de tradução

O novo Localization Manager ajuda você a trabalhar com mais eficiência com vários arquivos .resx na sua solução. Ele mostra tudo o que você tem em seus arquivos .resx em uma única grade, para que você possa observar o estado atual da localização do aplicativo ou site e encontrar rapidamente quaisquer valores de recursos ausentes em qualquer cultura.

Você pode:

  • Adicione, edite, renomeie, procure, incorpore, mova e exclua com segurança quaisquer recursos traduzidos.
  • Encontre todos os recursos que não tenham valores traduzidos.
  • Oculte todas as localidades desnecessárias no momento.
  • Crie arquivos .resx de culturas ausentes.
  • Veja uma dica de ferramenta que mostra uma descrição detalhada de qual é o problema com a célula.

Confira o Localization Manager em ReSharper | Windows ou no menu de contexto no Solution Explorer.

Para saber mais, consulte Tradução ainda mais fácil com o Localization Manager.

Suporte para C# 8 ainda melhor

Suporte para C# 8 ainda melhor

A nova versão do ReSharper lida ainda melhor com o C# 8. Agora, ela inclui:

  • Uma melhor compreensão dos tipos de referências anuláveis, incluindo suporte para restrições notnull.
  • Expressões de chave com tipo de destino.
  • Suporte antecipado para métodos de interface padrão.
  • Uma nova dica, “Local function can be static”, com uma correção rápida que a acompanha.
  • Uma nova correção rápida para permitir anotações e avisos nullable em um arquivo, projeto ou em todos os projetos em uma solução.
  • Uma nova correção rápida para adicionar o atributo EnumeratorCancellation aos parâmetros CancellationToken de iteradores async.

Além disso, a inspeção de código “Type or type member is never used” foi dividida em duas opções separadas, uma para tipos (“Type is never used”) e outra para membros de tipo (“Type member is never used”).

Geração de código

Geração de código

A ação Generate conhece mais sobre o C# 8 e ajuda você a aprender também com:

  • Uma nova correção rápida Add missing arms para verificar exaustivamente os valores da enumeração.
  • Uma nova ação de correção rápida e contexto para gerar padrões de tipo em expressões de chave.
  • A questão de Nullability sendo levada em consideração ao gerar membros/comparadores de igualdade/relacionais.

Além disso, há uma nova opção para usar System.HashCode para implementar GetHashCode ao gerar membros de igualdade ou comparadores de igualdade para C# e VB.NET, o que ajudará a tornar seu código ainda mais limpo .

Formatação de código

Estilo do código

Nesta versão, cumprimos a promessa de entregar mais uma solicitação tão aguardada. As configurações de nomeação em C# agora oferecem suporte para leitura/exportação para EditorConfig.

Além dessa grande mudança, há várias mudanças menores que oferecem mais controle sobre o estilo do seu código:

  • Para aqueles que preferem usar var em vez de tipos explícitos somente quando o tipo de expressão do inicializador é evidente/aparente, o ReSharper agora pode detectar casos mais “evidentes”. Há também um modo de “compatibilidade” para corresponder ao comportamento do Roslyn.
  • Há uma nova opção de estilo de código, compatível com StyleCop e Roslyn, para adicionar parênteses que esclarecem a precedência apenas para um grupo de operadores aninhados com outros do mesmo grupo. Por exemplo, se você não consegue se lembrar se && ou || tem precedência, essa opção ajudará você a esclarecê-lo com parênteses.
  • A opção Comment Code agora adiciona um recuo a um comentário por padrão. Há uma nova configuração para “Place comments at first column when commenting out code” caso você queira desativar essa opção.
  • As páginas de opções para configurar recuos agora exibem a notificação apropriada quando a configuração Autodetect indent size and value está ativada.
  • Há também uma dica de ferramenta de notificação explicando os recursos Configure formatting e Autodetect formatting nas páginas de opções do formatador C#.
Ferramentas de linha de comando ReSharper entre plataformas

Ferramentas de linha de comando ReSharper entre plataformas

As pessoas costumavam nos perguntar se era possível executar o ReSharper Command Line Tools em um CI hospedado no Linux. Por um longo tempo, nossa resposta era: "Não, isso não pode ser feito". No entanto, trabalhamos duro para remover todas as partes específicas do Windows, para que pudéssemos mudar tudo para o tempo de execução Mono para Linux e macOS. Não se preocupe, ele ainda usa o .NET Framework no Windows.

Hoje, temos o prazer de anunciar que as o ReSharper Command Line Tools agora está disponível no Linux e no macOS! Nada o impede de usar a poderosa análise de código do ReSharper em sistemas operacionais não Windows.

Dicas de nomes de tipos

Dicas de nomes de tipos

Esperamos que você goste das dicas de anotações de nome e código de parâmetro que introduzimos no ReSharper 2019.1. Neste lançamento, fomos mais além e agora estamos prontos para lhe fornecer Dicas de nome de tipo. Eles estão disponíveis para:

  • Parâmetros de um lambda.
  • Todas as ocorrências de var, incluindo correspondência de padrões e desconstrução de tuplas.
  • Variáveis de intervalo dentro de instruções LINQ.
  • No final de uma linha em uma cadeia de chamada de método.
Navegação e localização de usos

Navegação e localização de usos

A maioria de nós tem momentos em que deseja saber onde uma referência específica é usada no nosso código. Durante muito tempo, foi possível executar a ação “Find dependent code” em uma referência para encontrar todos os locais em que os tipos ou membros de tipo dessa referência apareceram. No entanto, sempre houve limitações.

A partir do lançamento da versão 2019.3, eliminamos algumas delas:

  • Find dependent code agora funciona para referências NuGet e pode ser executado para uma solução inteira, em vez de apenas um projeto!
  • Consuming APIs estende ações “Navigate to” e pode ser útil se você deseja listar todos os métodos que recebem objetos de um tipo específico em seus parâmetros.
  • A janela Find results para Find dependent code possui novos filtros.
  • Agora, você pode navegar para as fontes externas dos pacotes NuGet que possuem um pacote de símbolos de origem.
Atualização de testes de unidade

Atualização de testes de unidade

As janelas de ferramentas Unit Testing já estão em ótima forma e cobrem a maior parte do que esperaríamos delas. Ainda assim, pensamos que poderíamos adicionar mais maneiras de personalizar sua exibição da lista de testes de unidade, então assim fizemos.

  • Use a nova funcionalidade avançada Group by nas janelas de ferramentas Unit Test Explorer e Unit Test Session para criar um agrupamento personalizado. Com o elemento Duration adicionado, agora você pode agrupar testes de unidade com base no tempo necessário para executá-los.
  • Você pode filtrar testes de unidade pela estrutura de destino na janela da ferramentas Unit Test Session, caso tenha mais de uma (o que é bastante comum hoje em dia) e não queira ver algumas delas.
Atualização no realce de identificadores

Atualização no realce de identificadores

O realce de identificadores foi completamente reformulado. Adicionamos mais configurações de cores para maior precisão com realce de código (disponível em Tools | Options | Fonts and Colors). As novas configurações de cores incluem:

  • Uma seção geral para cores de entidades em todas as linguagens.
  • Configurações dedicadas para cores C#.
  • Novas configurações de cores para construções em diferentes linguagens.
Outros recursos

Outros recursos

  • As novas inspeções NUnit abrangem testes de unidade combinatórios e parâmetros individuais de testes de unidade parametrizados.
  • O pop-up Parameter Info está disponível para tuplas.
  • O suporte para Xamarin recebeu algumas correções importantes, como suporte para x:DataType e Class attribute.
  • A digitação auxilia na exclusão de novas linhas e no retrocesso antes que uma nova linha agora deixe um espaço para separar os tokens ou quando isso for exigido pelas regras de formatação.
Suporte para C++20

Suporte para C++20

O C++20 possui recursos completos e será oficialmente aprovado no próximo ano para fornecer aos desenvolvedores C++ uma variedade de recursos há muito esperados. O ReSharper C++ 2019.3 já oferece suporte a muitos desses recursos, aumentando-os com análises e insights adicionais.

Primeiro, o ReSharper C++ agora está ciente de que agregados podem ser inicializados a partir de uma lista entre parênteses de valores e de que uma ADL extra precisa ser executada em alguns casos com modelos de função.

Não só há suporte para Concepts no analisador do ReSharper C++, como também a refatoração Rename e o recurso Find Usages estão disponíveis. Melhor ainda, a análise de código pode mostrar mais detalhes sobre erros relacionados a Concepts. Por exemplo, se a resolução de sobrecarga falhar porque o requisito de um conceito não for atendido, você verá todos os detalhes em uma dica de ferramenta. A propósito, no ReSharper 2019.3 também adicionamos cores à dica de ferramenta que mostra os detalhes sobre as falhas de resolução de sobrecarga.

Iniciamos uma série de postagens de blog do C++20 e do ReSharper C++, que você pode usar para saber mais sobre os novos recursos de linguagem e sua adoção no ReSharper C++.

Suporte para Unreal Engine 4

Suporte para Unreal Engine 4

Quando o ReSharper C++ detecta que você está desenvolvendo um projeto Unreal Engine, ele ajusta seu comportamento para ser mais específico do UE4.

O "novo" modelo postfix para UCLASSes se expande para uma chamada de função de fábrica apropriada (que registrará o objeto criado no coletor de lixo). Agora, modelos ativos com os nomes correspondentes estão disponíveis para ajudá-lo a gerar rapidamente USTRUCT/UCLASS/UENUM/UENUMCLASS.

Os Ponteiros inteligentes do Unreal Engine (TSharedPtr, TSharedRef, TWeakPtr, TUniquePtr) agora são manipulados por ReSharper C++ da mesma forma que std::shared_ptr/std::unique_ptr. Isso significa recursos como informações sobre parâmetros, análises de código e o trabalho de preenchimento de código postfix para Ponteiros inteligentes.

Por fim, existem algumas melhorias de desempenho para projetos do UE4. Por exemplo, corrigimos um travamento após "Refresh Visual Studio Project" no editor do UE4.

Consulte as Novidades no ReSharper C++.

Profiler de linha de comando no macOS e Linux

Profiler de linha de comando no macOS e Linux dotUltimate

O profiler de linha de comando finalmente chegou para macOS e Linux. O dotTrace.sh tem a mesma funcionalidade do seu homólogo para Windows e é distribuído como um arquivo .tar.gz e como um pacote NuGet.

Consulte as Novidades no dotTrace 2019.3.

Melhorias no dotCover dotUltimate

O dotCover 2019.3 recebeu várias melhorias:

  • Suporte para Unity 2018.3 e posterior em todos os sistemas operacionais. Para executar a análise de cobertura de testes do Unity, você deve usar o JetBrains Rider.
  • Suporte para Microsoft Fakes.
  • Capacidade de agrupar resultados de cobertura por namespaces aninhados no Rider, Visual Studio e em relatórios gerados pela ferramenta de console dotCover.

Consulte as Novidades no dotCover 2019.3.

Baixar

Avaliação gratuita por 30 dias disponível