Novidades no ReSharper 2025.1

O ReSharper 2025.1 traz um suporte inicial aos recursos das versões Preview do .NET 10 e do C# 14. Esta versão também traz novas inspeções, voltadas a armadilhas comuns no C#, juntamente com várias melhorias de qualidade de vida. O desempenho melhorou significativamente, com a reformulação do sistema de internalização de strings e a reconstrução do suporte a helpers de tags do Razor e a componentes do Blazor. Além disso, esta versão inaugura a integração do VisualStudio com o dotMemory e introduz o novo plug-in Qodana Team Code Quality para incrementar a integração com pipelines de CI/CD.

Suporte para C#

Suporte para .NET 10 Preview e C# 14

O ReSharper 2025.1 traz um suporte inicial aos recursos das versões Preview do .NET 10 e do C# 14.

nameof de tipos genéricos não vinculados

Anteriormente, o uso de nameof exigia a especificação de todos os argumentos de tipo, causando uma verbosidade desnecessária. O C# 14 permite nameof(List<>) sem listar explicitamente os argumentos de tipo. O ReSharper agora detecta argumentos de tipo genéricos redundantes em expressões nameof e fornece uma correção rápida para simplificá-los.

Conversões de primeira classe para Span<T>

O C# 14 introduz novas conversões implícitas entre ReadOnlySpan<T>, Span<T> e T[], tornando o código baseado em span mais intuitivo. O ReSharper agora oferece suporte completo a essas regras de conversão, ajudando você a escrever código C# moderno e eficiente.

Modificadores em parâmetros simples de lambda

Com o C# 14, agora você pode usar modificadores de parâmetro como ref, out, in e scoped em expressões lambda sem precisar de tipos de parâmetro explícitos. O ReSharper oferece uma correção rápida para remover especificações de tipo redundantes.

Saiba tudo sobre as melhorias no suporte à linguagem C# no ReSharper e no Rider no nosso blog.

Além de trazer o suporte aos recursos do C# 14, esta versão também traz várias novas inspeções que visam armadilhas e ineficiências comuns em diferentes versões do C#.

Nova ação de contexto para converter interpolações em concatenações

Uma nova ação de contexto permite converter uma interpolação de strings em uma concatenação. Embora o ReSharper já permita há muito tempo converter uma concatenação de strings "Id = " + someId em uma interpolação $"Id = {someId}" ou string.Format("Id = {0}", someId), esta nova versão completa o ciclo, ao permitir a transformação inversa, dando a você mais flexibilidade para estruturar expressões de strings.

Código duplicado sem necessidade

Agora o ReSharper detecta e realça ainda mais padrões de duplicação de código em construtos condicionais, como if e switch, e dá sugestões de refatoração para o código ficar mais limpo e fácil de manter.

Uso possivelmente incorreto de CancellationToken

Agora o ReSharper detecta casos em que um CancellationToken em nível de método é usado por engano, em vez de um token local. O IDE oferece uma correção rápida para substituir o token incorreto ou fundir vários tokens, usando CancellationTokenSource.CreateLinkedTokenSource().

Uso de nameof para referenciar o nome de um membro de uma enumeração

Chamadas a .ToString() em membros de enumerações pode causar uma sobrecarga desnecessária no runtime. Agora o ReSharper sugere substituir essas chamadas por nameof(SomeEnum.Member), melhorando o desempenho e a clareza.

Sugestões de nomes de componentes de tuplas

O ReSharper 2025.1 sugere nomes explícitos para nomes de componentes de tuplas, em vez de nomes genéricos ItemN, tornando o seu código mais legível e autodocumentado.

Inspeção Inexact stream reads

Agora o ReSharper avisa quando métodos Stream.Read() e ReadAsync() são usados sem verificar seus valores de retorno, o que poderia levar a leituras incompletas de dados. O IDE sugere substituir esses métodos por .ReadExactly(), para garantir leituras corretas.

Alerta de modificação na inspeção Debug.Assert

Como chamadas a Debug.Assert são removidas em builds RELEASE, o ReSharper alerta sobre asserções que modifiquem o estado e possam levar a comportamentos inesperados no código de produção.

Suporte para C++

O ReSharper 2025.1 inclui várias melhorias no suporte ao C++:

  • A refatoração Inline Macro foi introduzida.
  • Suporte para várias novas extensões de linguagem GNU.
  • Otimizações de uso de memória em projetos Unreal Engine contendo um grande número de ativos Blueprint.
  • Clang-Tidy 20 incluído e suporte para uso do Clang-Tidy em dispositivos ARM.
  • Suporte atualizado para GoogleTest.

Saiba mais sobre as atualizações para o C++ na página Novidades do ReSharper C++ 2025.1.

Refatoração de código

Refatoração Toggle <ImplicitUsings>

"Usings" implícitos incluem automaticamente namespaces comuns, reduzindo o código repetitivo. Agora o ReSharper oferece uma maneira fácil de ativar ou desativar "usings" implícitos em todo o seu projeto, removendo "usings" explícitos redundantes quando a configuração estiver ativa ou adicionando os que forem necessários, quando inativa.

Refatoração Transform Parameters reformulada

O ReSharper modernizou a refatoração Transform Parameters, adicionando o suporte a tuplas de valores, registros e situações de assincronia, para tornar o código mais flexível e fácil de manter.

Formatação de código

Ação de contexto Chop formatting

Uma nova ação de formatação aplica "chop formatting" a vários construtos do C#, melhorando a legibilidade e a consistência do código.

Outras melhorias

  • Agora a formatação de comentários garante a quebra adequada de linhas e a adição de espaços após //. Você encontra algumas capturas úteis de tela nos tickets [RSRP-225809] e [RSRP-78312].
  • Também adicionamos uma opção para não inserir uma quebra de linha antes de um argumento único de expressão lambda em invocações de métodos. [RSRP-467905]

Experiência do usuário

Melhorias na ativação e indicação de Push-to-Hint

Refinamos o comportamento de Push-to-Hint no ReSharper, para evitar ativações involuntárias causadas por conflitos com outros atalhos baseados em Ctrl. Além disso, introduzimos um indicador visual para mostrar quando esse modo está ativo.

Realce de contexto em listas de tipos estendidos

Agora o ReSharper realça visualmente membros que estendam classes de base ou implementem interfaces específicas quando você posiciona o cursor sobre um nome de tipo na cláusula de tipos-base.

Desempenho

Consumo de memória

Para esta versão, reformulamos completamente nosso sistema de interning de strings. IDEs processam um número enorme de strings: código-fonte, elementos de sintaxe, nomes de símbolos e caminhos de arquivos. Isso torna crítico o tratamento eficiente de strings. Nosso novo sistema de internalização de strings armazena, em média, quatro vezes mais strings únicas que o sistema antigo e consome cerca de metade da memória, liberando recursos em projetos de .NET de grande escala.

Melhorias no Blazor & Razor

Os auxiliares de marcação Razor e o suporte a componentes Blazor foram completamente reconstruídos para o 2025.1. Essa reformulação há muito necessária traz uma redução de 5%–10% no tempo de análise para grandes soluções ASP.NET com uso intensivo de componentes. Você também experimentará menos eventos de reanálise ao editar arquivos .cshtml/.razor, bem como uma redução significativa nos relatórios de erros falsos.

Última atualização de status sobre o ReSharper fora do processo

Nas últimas quatro semanas, estivemos testando internamente a última implementação do ReSharper fora do processo ("out-of-process", OOP) e estamos muito empolgados com os resultados de até agora. Embora ainda estejamos trabalhando no suporte a todos os recursos e na correção de problemas conhecidos, a funcionalidade central que torna o ReSharper uma parte essencial do seu fluxo de trabalho de desenvolvimento está tomando forma muito bem.

Leia nossa última postagem no blog para ver uma atualização completa sobre o ReSharper OOP.

Profiling de memória dotUltimate

Análise de snapshots com dotMemory no Visual Studio

O dotMemory agora está totalmente integrado ao Microsoft Visual Studio. Anteriormente, você só podia iniciar o profiling dentro do Visual Studio, mas precisava alternar para o aplicativo autônomo dotMemory para analisar os resultados. Agora, você pode tanto fazer o profiling de sua aplicação quanto analisar snapshots de memória sem sair do IDE.

Qualidade do código

Extensão Qodana Team Code Quality

O Qodana é uma ferramenta de qualidade do código em equipe que aproveita as inspeções da JetBrains para ajudar as equipes a executarem verificações e auditorias e estabelecerem portões de qualidade em seus pipelines favoritos de CI/CD. Agora você pode baixar a extensão Qodana Team Code Quality através do instalador do ReSharper para trazer o Qodana Cloud ou projetos auto-hospedados do Qodana para o Visual Studio.

Identifique problemas, bugs e vulnerabilidades no código, execute as análises diretamente no seu pipeline e depois visualize os problemas no IDE com o qual você trabalha, para obter melhores atualizações e aprendizado contextuais. Você também tem a opção de baixá-lo como ferramenta stand-alone, usando o instalador do ReSharper.

Desenvolvimento de jogos

Plugin Unity para ReSharper

O ReSharper 2025.1 vem com um plugin Unity integrado que oferece suporte a todos os principais fluxos de trabalho de desenvolvimento de jogos. O plugin fornece complementação de código para funções de evento e APIs do Unity, resumos em dicas de ferramenta com links para a documentação do Unity e inspeções especializadas para detectar armadilhas comuns. Inclui suporte a arquivos ShaderLab com realce de sintaxe, complementação de código e detecção de erros. O plugin também lida automaticamente com arquivos .meta e detecta o uso implícito de campos e métodos em cenas, prefabs e assets do Unity.

O ReSharper C++ continua oferecendo suporte dedicado ao desenvolvimento com o Unreal Engine.

Descompilador

O ReSharper 2025.1 traz várias melhorias no descompilador, ampliando o suporte aos últimos recursos do C# e melhorando a legibilidade do código. Veja as novidades:

  • Suporte a membros required.
  • Suporte ao novo tipo System.Threading.Lock, introduzido no C# 13.
  • Suporte a campos ref e a modificadores de parâmetros scoped.
  • Suporte à antirrestrição genérica allows ref struct.
  • Instruções using baseadas em padrões para tipos ref struct.
  • Suporte à interpolação de strings.
  • Agora, certas constantes inteiras no código descompilado incluem representações hexadecimais, para melhor legibilidade.
  • Suporte a namespaces com escopo de arquivo.

Outras melhorias dignas de nota

Novo modelo postfix .inject

Os construtores primários do C# 12 simplificaram a injeção de dependências. O novo modelo postfix .inject simplifica ainda mais a injeção de dependências em construtores ao introduzir automaticamente um parâmetro no construtor primário e sugerir um nome significativo.

Suporte a logs estruturados

Agora o ReSharper ampliou o suporte a logs estruturados, ajudando os desenvolvedores a escreverem e analisarem logs de forma mais eficiente.

Injeção de linguagem em valores de retorno

Agora o ReSharper permite anotações por injeção de linguagem em valores de retorno de métodos, ampliando o suporte anterior a parâmetros, campos e propriedades.

Melhorias em comentários To-do em várias linhas

Antes, comentários To-do em várias linhas exigiam indentação para serem continuados. O ReSharper 2025.1 remove essa restrição, facilitando escrever e gerenciar To-do's em várias linhas, mas ainda observando a indentação onde for apropriado.

OSZAR »