Novidades no ReSharper 2024.2

O ReSharper 2024.2 introduz o suporte ao .NET 9 Preview SDK, incluindo um conjunto inicial de recursos do C# 13, tais como a implementação de interfaces ref struct, a nova sequência de escape \e e uma refatoração do modificador params. Agora o suporte a C++ inclui recursos do C++ 23, informações sobre o layout dos tipos nas dicas de ferramenta e um melhor suporte a projetos do Unreal Engine. Esta versão também inclui a primeira etapa da tradução para chinês, coreano e japonês, digitação assíncrona para um melhor desempenho e melhorias no AI Assistant, com modelos de linguagem aperfeiçoados, sugestões de código dentro do editor e novos recursos em Explain with AI.

Baixar

Avaliação gratuita por 30 dias disponível

Suporte ao SDK de demonstração do .NET 9

O ReSharper 2024.2 vem com suporte ao .NET 9 Preview SDK, incluindo o suporte inicial a recursos do C# 13, como o novo caractere de escape, uma refatoração do modificador params e interfaces ref struct.

Suporte para C#

Nesta última versão, o ReSharper aprofunda seu suporte aos recursos do C# 12, incluindo construtores primários e aperfeiçoamentos nas expressões de coleções e nas ações de contexto para criação de arrays e conversões em tipos de coleção. Além disso, o ReSharper 2024.2 traz o suporte inicial ao C# 13, com uma implementação de interfaces ref struct, a nova sequência de escape \e e uma refatoração do modificador params.

Esta atualização também traz:

  • Aperfeiçoamentos na análise de igualdade em tipos "struct".
  • A inspeção Extract common code, para reduzir a duplicação em construtos ramificados.
  • Pré-visualizações da cultura na complementação de código do especificador de formato ToString().
  • Análise de expressões de conversão explícita, para substituir conversões frágeis no estilo do C por anotações de tipo explícito.

Confira esta postagem no blog para mergulhar nas últimas atualizações do suporte ao C# introduzidas no ReSharper e no Rider 2024.2.

Suporte para C++

Estas são algumas melhorias notáveis no suporte a C++:

  • Suporte a recursos adicionais do C++ 23, incluindo o operador multidimensional de subscritos, as diretivas de pré-processador #elifdef e #elifndef, e o atributo [[assume]].
  • Agora as dicas de ferramenta e o pop-up de documentação rápida dão informações detalhadas sobre o layout do tipo para classes e seus campos, incluindo o tamanho, alinhamento, deslocamento na memória e preenchimento.
  • Em projetos do Unreal Engine, o ReSharper reconhece traits de structs, garantindo que os seus structs tenham os métodos necessários e gerando-os rapidamente se estiverem faltando. Uma nova inspeção detecta chamadas faltando para métodos de classes de base.
  • Ao renomear um arquivo, a refatoração Rename traz novas opções para renomear outros arquivos e tipos relacionados.
  • As melhorias na análise de código incluem uma atualização para o Clang-Tidy 18 e suporte a pragmas do IWYU.

Saiba mais sobre as atualizações para C++ nas Novidades do ReSharper C++ 2024.2.

Localização

O ReSharper 2024.2 inaugura a primeira etapa da tradução para chinês, coreano e japonês! Você verá uma tradução parcial da interface de usuário, das inspeções de código, das janelas de ferramentas e das notificações. Para ver uma versão traduzida do ReSharper, vá até Options | Environment | General | Localization | Interface language no ReSharper e escolha a opção desejada na lista suspensa.

Como alternativa, você pode instalar o plug-in de tradução através do Extension Manager. Você encontra as instruções completas aqui.

Performance

Digitação assíncrona ativada

A digitação assíncrona é parte de um esforço em andamento para melhorar o desempenho do ReSharper, ao possibilitar que ele seja executado fora do processo do Visual Studio. O ReSharper 2024.2 é a primeira versão do produto a trazer esta importante alteração. Nossos testes internos mostram que ativar a digitação assíncrona torna a experiência de digitação mais suave de forma marcante. Adoraríamos saber das suas impressões no nosso rastreador de issues.

AI Assistant

Modelos e obtenção de contexto atualizados

Fizemos a atualização dos antigos modelos GPT 3.5 e GPT 4 para o GPT-4o ou o Google Bison, dependendo da tarefa. Além disso, nossa obtenção de contexto para a complementação por IA e o chat de IA foi atualizada para entregar resultados mais relevantes com esse novo modelo.

Ask AI

Você não precisa mais abrir o chat de IA sempre que tiver uma nova pergunta para a IA. Basta invocar Ask AI e começar a perguntar.

Sugestões e geração de código dentro do editor

Agora o JetBrains AI dá dicas de onde você pode gerar documentação em XML ou implementar métodos vazios, bastando um só clique (ou pressionando Alt+Enter). Isso elimina a necessidade de pesquisar essas opções manualmente na lista de ações.

Além disso, em vez de redirecionar você para o chat, a IA lhe dará as respostas diretamente no editor. Você pode facilmente revisá-las ou gerá-las novamente, se necessário, ou especificar mais detalhes ali mesmo, para obter melhores resultados.

Melhorias na interface e na experiência do usuário na complementação de código por IA

Melhoramos a apresentação das nossas sugestões de IA, facilitando distinguir entre as sugestões da complementação em várias linhas da IA do ReSharper e outros elementos. Agora você também pode gerar os resultados novamente pressionando Shift+Tab.

Sugestões de nomes por IA em Rename e Extract Method

Pode ser um desafio nomear variáveis e métodos, especialmente em soluções grandes, com inúmeros símbolos com nomes parecidos. Felizmente, quando você renomeia um método, agora a IA sugere os nomes mais adequados.

Explain with AI para depurações e DPA

Agora você pode pedir à IA que explique quaisquer exceções encontradas durante a sua sessão de depuração, sem sair do seu contexto atual. Basta clicar no botão junto à exceção para receber a explicação no chat.

O AI Assistant também poderá explicar quaisquer problemas referentes à alocação de memória ou a bancos de dados, identificados pela Dynamic Program Analysis ("Análise Dinâmica de Programas", DPA).Depois que a DPA identificar um problema, você poderá clicar no botão Explain with AI. Como a IA é sensível ao contexto do código, ela analisará o contexto do problema, dará uma explicação e sugerirá possíveis correções. No momento, você só pode fazer isso para problemas de memória e de banco de dados.

dotMemory

dotUltimate

Melhor pesquisa de instâncias

Adicionamos novas opções de filtragem à visualização Instances:

  • Pesquisa por valor de string: Digite qualquer valor de string no campo de filtro e o dotMemory realçará as strings encontradas. Isso facilita encontrar ocorrências específicas de uma string, com base no seu conteúdo.
  • Suporte a expressões regulares em valores de strings: Use expressões regulares para fazer pesquisas mais avançadas. Por exemplo, ^nAsso.{5,}ID$ encontra nAssociatedObjectID.nAssociatedObjectID.
  • Pesquisa pelo endereço de um objeto: Você também pode pesquisar instâncias de objetos pelo endereço delas na memória. Isso é útil para rastrear diretamente objetos específicos.

Saiba mais sobre as melhorias no profiler do dotMemory aqui.

dotTrace

dotUltimate

Esta última atualização da ferramenta de profiling de desempenho traz:

  • Melhor desempenho, com processamento mais rápido de snapshots de Timeline.
  • Um novo mecanismo de renderização no dotTrace Viewer em todas as plataformas.
  • Uma janela Options adicionada à versão stand-alone para macOS e Linux.
  • Correção de eventos de kernel faltando em snapshots de Timeline no Windows.
  • Várias melhorias menores e correções de bugs.

Saiba mais sobre as melhorias no profiler do dotTrace aqui.

Descompilador

Melhorias gerais

  • Parâmetros lambda: Introduzimos o suporte à descompilação de lambdas com parâmetros opcionais e arrays de parâmetros, melhorando a legibilidade e a precisão do código descompilado.
  • Atributos em lambdas: Agora a ferramenta oferece um melhor tratamento dos atributos de expressões lambda, para garantir que todos os metadados relevantes sejam precisamente refletidos na saída descompilada.
  • Assemblies protegidas: Introduzimos a capacidade de especificar se você deseja descompilar assemblies protegidas, permitindo uma exploração mais abrangente do código.

Detecção da configuração de build

Agora a janela de ferramentas Assembly Explorer detecta e apresenta a configuração de build das assemblies, fornecendo insights mais claros do contexto de compilação da assembly.

Tratamento de fontes externas

  • PDB com SrcSrv e SourceLink: Agora o descompilador tem suporte à navegação até o código-fonte a partir de arquivos PDB contendo tanto SrcSrv quanto SourceLink.
  • Diretivas de pré-processador: Agora o descompilador reconhece corretamente diretivas de pré-processador (como NET6_0_OR_GREATER) do framework-alvo ou do Portable PDB da assembly associada, garantindo uma representação precisa do código.
  • Ação Open in Browser: Agora você pode navegar até o código-fonte no repositório, no caso de tipos, ou até um repositório, no caso de pacotes do NuGet ou de assemblies.