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.
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-windowsnet8.0-maccatalyst e net7.0-maccatalystnet8.0-macos e net7.0-macosClique 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.