Novidades do ReSharper C++ 2024.1

O ReSharper C++ 2024.1 melhora o suporte a módulos do C++20 e implementa chamadas de saída no Call Tracking. As melhorias na assistência à codificação incluem, dentre outras, aperfeiçoamentos na refatoração Change Signature e suporte atualizado a comentários de documentação. Para desenvolvedores no Unreal Engine, o ReSharper C++ 2024.1 traz o suporte ao framework Slate UI e a complementação de caminhos de ativos no código em C++.

Baixar

Avaliação gratuita por 30 dias disponível

Suporte a módulos do C++ 20

Graças ao processo atualizado de descoberta de módulos, agora o ReSharper C++ oferece suporte a unidades internas de partições, ou seja, unidades de partições de módulos que não contribuem para a interface externa desses módulos. Em outras palavras, são partições de módulos sem uma declaração de export module associada.

Reformulamos a representação interna dos módulos do C++ 20 exportados, para facilitar referências transitivas a entidades importadas de outros módulos. Antes, essas entidades eram reexportadas a partir do módulo que as houvesse importado. Esperamos que esta mudança reduza significativamente o impacto dos módulos exportados e melhore o desempenho em projetos que utilizem módulos do C++ 20.

Unreal Engine

O ReSharper C++ 2024.1 introduz o suporte ao framework Slate UI, do Unreal Engine. Você pode confiar no formatador de código e na assistência à digitação do ReSharper para formatar o seu código no Slate de acordo com as convenções do Unreal Engine. Também foram atualizados recursos como Go to declaration, Find Usages e Rename, que agora compreendem a sintaxe declarativa do Slate.

A integração inteligente do ReSharper C++ com o recurso Blueprint continua, com o suporte à adição de core redirects ao renomear instâncias UENUM, além da complementação de caminhos de ativos nos nomes de recursos em código C++.

Agora há suporte a interfaces em HLSL usadas para vinculação dinâmica de shaders no código destes.

Se você estiver interessado em um IDE multiplataformas independente para desenvolvimento com Unreal Engine, considere o Rider. O suporte para Unreal Engine no Rider e no ReSharper C++ está alinhado, e você pode esperar as mesmas melhorias na atualização do Rider 2024.1.

Chamadas de saída em Call Tracking

Agora o Call Tracking do ReSharper tem suporte à navegação através de cadeias de chamadas de saída em C++, além do suporte já existente ao rastreamento de chamadas de entrada. Para explorar chamadas de saída, posicione o cursor em qualquer função e selecione Inspect | Outgoing calls no menu de contexto. Alternativamente, você também pode pressionar Ctrl+Shift+Alt+A para invocar este recurso a partir do menu Inspect This.

Melhorias em Change Signature

Agora você pode alterar facilmente o tipo de um parâmetro de função entre um ponteiro, uma referência e um tipo de valor, usando Change Signature. O ReSharper automaticamente atualizará os usos dos parâmetros no corpo da função e ajustará os argumentos das funções em seus locais de chamada, removendo referências ou adicionando operadores de endereço onde necessário.

Agora, quando Change Signature é invocado em uma função que pode potencialmente ter usos em código dependente, a refatoração permite que você verifique as alterações e confirme quais usos precisam ser atualizados.

Agora você também pode especificar argumentos-padrão para novos parâmetros de função que tenham sido adicionados através de Change Signature.

Estas são algumas outras atualizações notáveis em Change Signature:

  • Melhor tratamento de modelos variádicos de funções
  • Atualização correta de argumentos de funções no caso de locais de chamada dentro de chamadas a macros.
  • Agora Change Signature preserva tipos de array e o especificador de tipo int em tipos unsigned int.

Comentários de documentação

Agora você pode personalizar o estilo dos comentários de documentação gerados, sem precisar editar um modelo dinâmico. Para configurar o estilo dos comentários de documentação, vá até Settings | Code editing | C++ | Code generation no ReSharper.

O JetBrains Grazie é o novo verificador gramatical e ortográfico incorporado ao ReSharper, introduzido na versão 2023.3. Na versão 2024.1, verificações ortográficas pelo Grazie também estão disponíveis dentro dos comentários de documentação em C++.

Agora a refatoração Change Signature mantém os comandos @param sincronizados com a lista de parâmetros de função. Essa refatoração exclui os comandos @param correspondentes a parâmetros removidos, adiciona comandos para novos parâmetros e reorganiza os comandos existentes para coincidirem com a ordem atualizada dos parâmetros incluídos.

Análise de código

Com base nos últimos resultados da extensa bateria de testes de ferramentas de refatoração para C++ mantida por Richard Thomson, o ReSharper C++ continua superando o desempenho das outras ferramentas, passando no maior número de casos de teste. Como parte do nosso trabalho constante para melhorar a qualidade das sugestões do ReSharper, no ReSharper C++ 2024.1 corrigimos vários problemas identificados em versões anteriores pela suíte de testes do Richard. Por exemplo, agora a correção rápida Create constructor from usage adiciona um construtor-padrão quando necessário.

Agora o ReSharper C++ 2024.1 sugere remover inicializadores idiomáticos redundantes com o valor zero na inicialização agregada. Várias novas inspeções encontram diversos problemas com membros estáticos de dados, como especificadores inline redundantes em membros de dados static constexpr.

A limpeza de código adiciona novos itens para remover especificadores de acessibilidade redundantes e criar classes sem herdeiros final. Agora Apply ‘auto’ style manipula variáveis globais e membros de classes, além de variáveis locais.

Antes, se você quisesse suprimir uma inspeção em um escopo específico, você podia usar comentários // ReSharper disable, específicos do ReSharper. Além disso, o ReSharper C++ 2024.1 reconhece os comentários NOLINT, NOLINTNEXTLINE e NOLINTBEGIN ... NOLINTEND usados pelo clang-tidy.

Formatação de código

O ReSharper C++ 2024.1 introduz várias novas opções de formatação:

  • Break line after goto labels e Indent goto labels, que melhoram a formatação de declarações com rótulos.
  • Configurações que controlam as quebras de linhas dentro de enumerações, em Arrangement of enumerations.
  • Empty braces formatting agora inclui a opção Do not change.

Agora, ao usar uma configuração .clang-format, o formatador do ReSharper respeita as configurações DisableFormat e IndentAccessModifiers. O estilo de clang-format nativo do GNU também já tem suporte.

Confira as Novidades no ReSharper para saber mais sobre as outras alterações introduzidas nesta versão.

Baixar

Avaliação gratuita por 30 dias disponível