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.
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.
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.
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#.
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.
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.
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()
.
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.
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.
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.
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.
O ReSharper 2025.1 inclui várias melhorias no suporte ao C++:
Saiba mais sobre as atualizações para o C++ na página Novidades do ReSharper C++ 2025.1.
<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.
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.
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.
//
. Você encontra algumas capturas úteis de tela nos tickets [RSRP-225809] e [RSRP-78312]. 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.
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.
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.
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.
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.
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.
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.
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.
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:
required
. System.Threading.Lock
, introduzido no C# 13. ref
e a modificadores de parâmetros scoped
. allows ref struct
. using
baseadas em padrões para tipos ref struct
. .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.
Agora o ReSharper ampliou o suporte a logs estruturados, ajudando os desenvolvedores a escreverem e analisarem logs de forma mais eficiente.
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.
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.