Novidades no ReSharper 2022.1

A versão 2022.1 tem foco na qualidade e traz muitas melhorias e correções de bugs, especificamente no desenvolvimento em Blazor e no suporte a C#.

Baixar

Avaliação gratuita por 30 dias disponível

Suporte para C#

We continue to improve support for C# 10, particularly global usings. Implementamos duas novas refatorações que também estão disponíveis como ações de contexto.

Extract Global Using pode ajudar a introduzir o conceito de global using no seu projeto. Você pode invocá-la numa diretiva using comum, e o ReSharper sugerirá sua extração para um arquivo GlobalUsings.cs designado (se ainda não houver esse arquivo no seu projeto, ele será criado). O using comum que não for mais necessário será removido dos arquivos no seu projeto.

Se você decidir refatorar um using global para um using comum, a refatoração Inline Global Using também poderá ser útil aqui. Quando chamada em um using global, ela o remove de GlobalUsings.cs e adiciona a instrução using correspondente aos arquivos no seu projeto quando necessário.

O recurso de usings globais tem suporte em Find Usages e em análises de código para métodos de extensão.

We’ve looked into the approaching C# 11 and supported generic attributes.

Tipos de referência anuláveis

  • Dividimos em duas categorias os avisos para verificações de nulos em expressões que nunca devem ser nulas. O primeiro aviso é para expressões que nunca são nulas porque uma anotação NRT instrui isso. O segundo aviso é para expressões em que há uma verificação de tempo de execução real em busca de nulos.
  • Adicionamos uma nova configuração para alternar para o modo Runtime enforced not null warnings only. Ela pode ser acessada a partir do grupo de itens de configuração no menu acionado com Alt+Enter para avisos annotation-based.
  • As anotações [MemberNotNull] e [MemberNotNullWhen] agora têm suporte em projetos que não usam tipos de referência anuláveis.

Endpoints

Agora nosso suporte a Endpoints funciona para APIs mínimas do ASP.NET Core 6 e encaminhamento baseado em convenções. Isso inclui navegação, análise e complementação de código.

Razor e Blazor

Aqui estão alguns dos recursos e correções mais importantes que fizemos para o Razor e o Blazor:

  • Adicionamos suporte para o novo atributo [EditorRequired] do .NET 6. A inspeção e a correção rápida correspondentes também estão disponíveis quando você tenta usar um componente Blazor sem especificar os parâmetros necessários.
  • Implementamos o suporte há muito esperado para funções locais C# dentro da sintaxe Razor.
  • Melhoramos a limpeza de código em arquivos .razor com componentes Blazor. Ele não remove mais todas as declarações @using.
  • Também corrigimos as ações de contexto If To Switch e Invert If no código Razor com referências a componentes Blazor.
  • O ReSharper agora usa o estilo de nomenclatura correto para as propriedades injetadas do Blazor.
  • A ação Comment with Line Comment agora comenta apenas a parte do código Razor que você espera.
  • We’ve added navigation through inheritance hierarchy to Razor code. Agora, as marcas de medianiz correspondentes são mostradas para símbolos base e derivados. Você pode clicar nelas para navegar até o código.

Limpeza e formatação de código

Reorganizamos todos os itens no menu Alt+Enter relacionados à limpeza e à formatação de código. As opções Format selection, Cleanup selection e Apply syntax style foram combinadas em um item Reformat and Cleanup para fornecer um único ponto de entrada.

Além dessas alterações, as configurações de estilo de sintaxe agora estão disponíveis nas ações Configure code style e Autodetect code style settings. O painel Preview code style também mostra alterações no estilo de sintaxe.

Testes unitários do Unreal Engine

The Unreal Engine testing framework is now supported. O ReSharper C++ descobre testes unitários do Unreal Engine e adiciona os indicadores de ação correspondentes junto a cada teste no editor, para executar ou depurar o teste ou todo o conjunto de testes. Na janela Unit Test Sessions, você pode revisar os resultados dos testes e executar novamente todos os testes, só os que falharam ou só alguns específicos.

Novidades no ReSharper C++ 2022.1

Suporte para C++ ainda melhor

Agora o ReSharper C++ manipula melhor chamadas implícitas a construtores, permitindo que você encontre usos e navegue até o construtor chamado em mais situações, incluindo as seguintes:

  • funções de criação de ponteiros inteligentes, sejam funções-padrão (make_unique/make_shared) ou específicas do Unreal (MakeShared/MakeUnique).
  • Métodos de container semelhantes a emplace.
  • Expressões cast do tipo static_cast e no estilo do C.

O ReSharper C++ 2022.1 também lhe mostra um alerta de sobrecarga quando uma função semelhante a emplace for chamada com argumentos incorretos.

Novidades no ReSharper C++ 2022.1

Geradores de código-fonte

Após analisarmos o desempenho do suporte a geradores de código, decidimos aumentar o intervalo entre solicitações ao se buscar no compilador documentos de código-fonte gerado.

Assim, os geradores de código-fonte não são executados antes do compilador e a carga de trabalho total da CPU é reduzida. O ganho exato de desempenho dependerá de se outros recursos, como a complementação de linhas inteiras do Visual Studio, também ativarem ou não os geradores.

Desempenho

We’ve fixed a number of performance issues already and laid the groundwork for more. Isto inclui lidar com snapshots de desempenho dos nossos clientes, sessões internas de profiling e reunir dados para no futuro, esperamos, implementarmos verificações automáticas de degradações de desempenho.

Quanto ao modo "fora de processo", o trabalho está em andamento. Please refer to the newest update in our issue tracker.

Ferramentas de linha de comando do ReSharper

As ferramentas InspectCode podem gerar arquivos de saída compatíveis com o Static Analysis Results Interchange Format (SARIF).

As ferramentas de linha de comando agora têm suporte ao Alpine Linux.

Descompilador

  • Agora o descompilador integrado mostra os comentários da documentação em XML em assemblies de plataforma, inclusive em assemblies cujos nomes sejam diferentes daqueles dos arquivos de documentação em XML --- por exemplo, System.Private.CoreLib. Agora o caminho para a documentação em XML é mostrado no cabeçalho do arquivo descompilado.
  • Desativamos o redirecionamento da navegação na visualização Metadata.
  • Adicionamos apresentações de blobs decodificados ou "raw" nas propriedades dos nós de blobs.
  • Agora o Assembly Explorer tem suporte a tipos encaminhados (os atributos [TypeForwardedTo]). A ação Locate in Metadata também funciona com tipos encaminhados, com referências a assemblies e módulos, e com recursos.
  • Melhoramos a navegação em PDBs para tipos sem pontos de sequência --- por exemplo, interfaces e enums.

Novidades no dotPeek 2022.1

Suporte melhorado a eventos do SQL Server dotUltimate

Agora o dotTrace tem suporte a eventos do SQL Server a partir do provedor do Microsoft.Data.SqlClient no Windows (.NET Core, .NET 5+), no macOS e no Linux (.NET Core 3.0+, .NET 5+).

Novidades no dotTrace 2022.1

Anexar a aplicativos usando arrastar e soltar dotUltimate

Agora você pode anexar o profiler a um aplicativo já em execução simplesmente arrastando o ícone especial até a janela do aplicativo.

Novidades do dotMemory 2022.1

Excluir código da análise de cobertura através de comentários dotUltimate

Agora você pode usar comentários para excluir certas linhas ou blocos de código da análise de cobertura. Para isto, estão disponíveis várias opções:

// dotcover disable
var i = 1;
var j = 10;
// dotcover enable

/* dotcover disable */ var i = 1; /* dotcover enable */

var i = 1; // dotCover disable this line

// dotcover disable next line
var j = 100;

Para funcionarem, todas essas opções precisam que você referencie o pacote JetBrains.dotCover.MSBuild NuGet. Esta é uma dependência apenas para desenvolvimento, que não será incluída no seu projeto como uma dependência de tempo de execução.

Novidades do dotCover 2022.1

Outras atualizações

  • Fizemos melhorias na refatoração Move type to file, que também inclui uma ação de contexto e uma correção rápida. Agora as diretivas do pré-processador são movidas juntamente com o tipo em casos comuns.
  • Corrigimos o problema da "alteração maciça no sistema de arquivos". Esse problema revelou ser um overflow do buffer de eventos. Ele fazia o ReSharper revisar todos os arquivos da solução, sem que houvesse uma causa real. Isso levava a uma alta utilização de CPU e, em alguns casos graves, travamentos da interface de usuário.
  • Corrigimos o problema que prejudicava a funcionalidade do ReSharper em arquivos .sqlproj em versões localizadas do Visual Studio.
  • Adicionamos a visualização em árvore Metadata ao ReSharper (apenas para o Visual Studio 2022). Essa visualização permite que você navegue por todos os itens dentro dos metadados de assembly e oferece buscas, navegação até o código-fonte e mais. For a full list of the features, please refer to the description in dotPeek documentation – the decompiler was the first product to have it.
  • Abordamos alguns problemas antigos com o "ReSharper mostrando código em vermelho ao alternar entre branches de Git". Identificamos várias situações específicas nas quais isso ocorria e as corrigimos.
Baixar

Avaliação gratuita por 30 dias disponível