No ReSharper 2024.1, melhoramos ainda mais o suporte a C#, para incluir mais sugestões para converter código em expressões de coleções e dar alertas quando uma coleção for modificada enquanto estiver sendo iterada em loops foreach
. Agora o suporte ao Razor resolve referências para as diretivas @addTagHelper
e @removeTagHelper
. A experiência e a interface de usuário ao editar regras personalizadas de nomeação foram muito aperfeiçoadas.
Avaliação gratuita por 30 dias disponível
Você agora receberá sugestões para converter mais construções do seu código-fonte em expressões de coleção do C# 12, como um array vazio ou a declaração e inicialização de ImmutableArray
.
Adicionamos a nova inspeção Possible 'System.InvalidOperationException: Collection was modified', que avisa quando uma coleção for modificada ao ser iterada dentro de loops foreach
, já que essa modificação pode levar a uma exceção em tempo de execução. Essa análise leva em consideração casos nos quais há uma saída do loop depois da modificação da coleção. Esses casos não provocarão o alerta.
Esta inspeção vem com uma correção rápida correspondente, para ajudar você a resolver esse problema instantaneamente.
Generate | Formatting Members permite que você gere código padronizado que substitui o método ToString()
e retorna uma string que faz sentido para os seus tipos. A partir da versão 2024.1, este recurso oferece suporte a mais tipos, tais como ISpanFormattable
, IUtf8SpanFormattable
e IFormattable
.
[MustDisposeResource]
Melhoria nas anotações: agora a análise do código em C# garante que os recursos retornados por métodos assíncronos, incluindo os envolvidos por Task<IDisposable>
e ValueTask<IDisposable>
, sejam descartados corretamente, ajudando a evitar o descarte acidental da própria tarefa. .ConfigureAwait(...)
, .AsTask()
ou .Result
. Estas são algumas das melhorias que fizemos na refatoração Change Signature:
List<>
, por exemplo, você poderá usar a complementação de código para selecionar facilmente o tipo desejado, como int
. System.Collections.Generic.List<System.Int16>
no diálogo Change Signature, ele será abreviado automaticamente para List<short>
no código resultante. in
e ref readonly
e tipos record
. Nesta versão, a refatoração Make Static tem suporte a parâmetros de construtores primários. Eles aparecem na lista Introduce parameters e têm um ícone separado para ajudar a distingui-los facilmente. Esta refatoração também está disponível para funções locais.
Agora a análise de código oferece suporte ao atributo ProtoContract
e ao enum ImplicitFields
, da biblioteca protobuf-net. Ambos podem ser usados para marcar membros implicitamente usados para serialização. Como resultado, esses membros não são mais sinalizados com alertas de unused members
@addTagHelper
e @removeTagHelper
Agora o ReSharper resolve referências a nomes de assemblies especificados dentro das diretivas @addTagHelper
e @removeTagHelper
nas suas visualizações do Razor. Como resultado, agora você pode desfrutar da complementação de código, da capacidade de localizar usos e da facilidade de navegação pelo código.
Agora o ReSharper considera quaisquer nomes não resolvidos de assemblies como sendo erros e os realça em vermelho, para chamar a sua atenção para eles.
Estas são algumas melhorias notáveis no suporte a C++:
Saiba mais sobre as atualizações para C++ nas Novidades do ReSharper C++ 2024.1.
Estamos refinando ativamente o modo de alta utilização de recursos na análise de toda a solução. Isso reduzirá significativamente o tempo gasto na análise, usando o paralelismo de CPUs de forma mais eficiente. Aperfeiçoamos o perfil de alocação de memória das atividades de análise de código, para minimizar o tempo gasto na coleta de lixo. Esse processo de refinamento ainda está em andamento, mas gostaríamos que você ativasse esse modo e nos desse o feedback sobre a sua experiência.
Ficou mais fácil e eficiente renomear elementos do seu código. Esta mudança também afeta outros componentes essenciais do ReSharper, levando a melhorias de desempenho em vários recursos, incluindo o Find Usages.
O desempenho da refatoração Move to Another Type com membros estáticos também melhorou significativamente ao lidar com classes grandes.
As mudanças devem tornar mais fácil trabalhar com regras avançadas de nomeação e observar quaisquer regras que tenham sido importadas de arquivos EditorConfig.
Esta nova configuração de formatação permite que você deixe espaços em branco em linhas em branco ou os remova.
A versão 2024.1 do ReSharper introduz a nova janela de ferramentas Assembly Diff. Ela traz consigo algumas mudanças:
.zip
foi movida do Assembly Explorer para a janela de ferramentas Assembly Diff. Agora o descompilador dentro do ReSharper tem suporte ao formato de empacotamento WebCIL para WebAssemblies. Esse suporte abrange:
.wasm
no Assembly Explorer. Agora também já está disponível o suporte a aplicativos de desktop em MAUI e de macOS usando .NET no dotTrace, dotMemory e dotCover dentro do Visual Studio.
Frameworks-alvo com suporte:
net8.0-windows
e net7.0-windows
net8.0-maccatalyst
e net7.0-maccatalyst
net8.0-macos
e net7.0-macos
Clique aqui para mais informações sobre a disponibilidade e as restrições do modo de criação de perfis.
O suporte para projetos em MAUI também está disponível dentro das versões stand-alone dessas ferramentas para .NET.
Agora o profiler do dotMemory stand-alone oferece suporte ao Frozen Object Heap (FOH), um recurso introduzido inicialmente com o .NET 6 SDK como parte das melhorias de desempenho na coleta de lixo.
O FOH aloca uma área dedicada da memória para objetos imutáveis. Esses objetos não são alterados depois de serem alocados e não estão sujeitos à coleta de lixo. O suporte a essa tecnologia permite que o dotMemory execute uma análise mais detalhada da memória usada pelos objetos imutáveis no FOH, melhorando a otimização do uso da memória.
A partir da versão 2024.1, o formato-padrão de saída do InspectCode é o SARIF. O formato XML será tornado obsoleto em breve. Os resultados ainda estão disponíveis no formato XML na versão atual, quando usado o parâmetro -f="xml"
.
Terminamos uma refatoração interna dos controles de texto. Além de ser parte do nosso esforço para fazer o ReSharper ser executado fora do processo do Visual Studio, essa refatoração foi projetada para melhorar a digitação e outros aspectos relacionados do desempenho do editor, tanto no ReSharper quanto no Rider. Você encontra aqui a última atualização de status do progresso da nossa tarefa de levar o ReSharper para fora do processo do Visual Studio.
O feed do plug-in do JetBrains Marketplace adotou um novo mecanismo de filtragem, baseado em verificações de compatibilidade. Isso significa que plug-ins incompatíveis não são mais mostrados no gerenciador de extensões do ReSharper.
Avaliação gratuita por 30 dias disponível