O ReSharper 2023.2 oferece melhor suporte a C#, trazendo novas inspeções para trabalhar com funções locais e strings brutas, e para resolver problemas comuns do Entity Framework. Esta versão também traz o suporte à refatoração em C++ e mais recursos do C++ 20 e 23. Dentre os recursos que estão estreando no ReSharper 2023.2 estão a capacidade de criar facilmente testes de unidades e navegar por eles, o modo preditivo do depurador e o novo AI Assistant.
Avaliação gratuita por 30 dias disponível
O ReSharper 2023.2 traz novas inspeções de código e correções rápidas para trabalhar com literais brutos de string e funções locais, e para lidar com problemas comuns no Entity Framework e diretivas anuláveis redundantes. O suporte antecipado ao C# 12 inclui construtores primários e expressões lambda com parâmetros opcionais. Também melhoramos o suporte do ReSharper a descartes e a recursos descartáveis, e acrescentamos novas dicas dentro das linhas de código e entre elas.
Os testes de unidades no ReSharper receberam uma grande atualização, com a adição de um recurso que permite que você navegue e crie testes para o seu código de produção!
Para criar um teste, basta invocar a ação Generate Code e selecionar Unit Test ou pressionar Ctrl+U,C. O ReSharper permite que você escolha o nome da classe do teste e até cria um novo projeto com o seu framework de testes preferido (se ele já náo estiver lá). Assim que o teste for criado, você poderá navegar entre o seu código de implementação e o de teste através da ação Navigate To ou pressionando Ctrl+U,F.
As versões 2023.2 dos IDEs baseados no IntelliJ e das ferramentas para .NET introduzem um importante novo recurso: o AI Assistant. O conjunto inicial de recursos de IA oferece um chat de IA integrado e se entrelaça naturalmente com alguns dos principais fluxos de trabalho de desenvolvimento através de ações de contexto, permitindo que a IA explique trechos selecionados de código, elimine problemas em potencial e gere documentação em XML para você.
Acrescentamos novas inspeções e ações de contexto de C# para trabalhar com strings brutas, além de novos assistentes de digitação e novas opções de formatação:
Confira a postagem correspondente no blog para saber mais sobre nosso suporte melhorado a strings brutas.
Adicionamos várias novas inspeções, correções rápidas e opções contextuais de navegação para problemas comuns que você pode ter ao trabalhar com bancos de dados usando um mapeamento objeto-relacional (ORM) como o Entity Framework.
Leia mais sobre as novas inspeções relativas ao Entity Framework nesta postagem do blog.
O ReSharper 2023.2 introduz duas novas inspeções, com correções rápidas correspondentes, voltadas para melhorar a legibilidade do código com funções locais:
return
ou continue
explícito antes de funções locais ao final de um método. return
, continue
ou outra declaração de salto no fluxo de controle. Nos casos em que você não quiser ou não tiver permissão de alterar o código, o ReSharper 2023.2 mostrará uma dica entre linhas com declarações return;
ou continue;
antes de funções locais, para ajudar você a compreender o código sem alterá-lo.
Confira esta postagem do blog com mais detalhes sobre as novas inspeções.
#nullable
e anotações de NRT Agora estão disponíveis várias novas inspeções para diretivas #nullable
e anotações de NRT:
JetBrains.Annotations
em membros-base. Para saber mais sobre essas inspeções, acesse esta postagem no blog.
var
Agora, todas as ações de navegação (Go to…, Find Usages, etc.) sugerem os tipos subjacentes ao navegar a partir de var
para tipos comuns usados para envolver outros tipos. Por exemplo, o ReSharper sugerirá navegar até Person
ao usar a ação Go to declaration a partir de uma palavra-chave var
de uma variável do tipo ImmutableArray<Person>?
.
Você pode saber mais nesta postagem no blog.
Na versão 2023.2, introduzimos o suporte a construtores primários para classes não record e structs da prévia do C# 12. Há várias inspeções que detectam esses tipos, nas quais a inicialização pode ser expressa com os novos construtores primários e pode sugerir aplicar uma correção rápida para reduzir muito a quantidade de repetições de código.
Às vezes, é preciso tornar a inicialização do tipo menos trivial e não é mais possível expressá-la através de um construtor primário. Para esses casos, introduzimos algumas ações de contexto para reverter uma substituição de parâmetros de construtores primários por construtores e campos comuns.
Para ver todos estes recursos para construtores primários e muitos outros em ação, confira esta postagem separada no blog.
Como parte do nosso trabalho de suporte às atualizações da linguagem C# na versão 12, estamos introduzindo o suporte a valores-padrão de parâmetros em expressões lambda. Além do conjunto-padrão de mensagens de alerta associadas ao reconhecimento dessa sintaxe, também ajustamos uma inspeção já existente, The parameter has the same default value, para levar em conta os valores-padrão de parâmetros em lambdas. Mais informações estão disponíveis aqui.
O ReSharper 2023.2 introduz duas novas inspeções de código, projetadas para controlar melhor o descarte de um objeto:
Também melhoramos o recurso Generate dispose pattern para dar suporte à interface IAsyncDisposable
e poder gerar um método "async" para liberar os recursos.
Você encontra mais detalhes desses acréscimos aqui.
A análise de código recebeu diversas novas adições úteis no suporte ao descarte em C#:
_
name is typically reserved for local parameters without usages que adverte sobre variáveis e parâmetros com o nome de _
que estão efetivamente em uso. Eles parecem ser valores "descartados", mas na verdade, representam bem o contrário disso. Confira esta postagem do blog para saber mais sobre o melhor suporte ao descarte.
Ao passar um valor para um argumento ou tipo de retorno de tupla, o C# permite que você omita os nomes dos componentes. Porém, sem os nomes, fica mais difícil entender o significado de cada componente sem olhar o seu tipo-alvo. Por exemplo, muitos desenvolvedores de software terão que verificar o local onde uma tupla (null
, false
) foi atribuída para entenderem o significado dos seus componentes.
É aqui que as dicas de inserção podem ajudar você! O ReSharper 2023.2 mostra dicas de inserção com os nomes dos componentes da tupla quando esses nomes não forem já evidentes pela expressão dos componentes, tornando o seu código mais fácil de ler e entender de relance.
No caso de componentes nulos e padrão, o ReSharper 2023.2 mostrará dicas sobre seus tipos-alvo, mesmo que o componente-alvo não tenha um nome explícito, mas fará uma exceção para os tipos string e objeto, pois eles geralmente não são muito informativos.
Outra situação comum na qual nomes podem melhorar a legibilidade é a de padrões de desconstrução nos quais um nome explícito ou é conhecido a partir do método Deconstruct
ou a partir dos componentes de origem da tupla. Essas dicas foram desenvolvidas para dar a você um contexto adicional quando o próprio padrão não contiver dados suficientes para se entender qual é a correspondência, como em value is ({ }, true, null)
.
#pragma warning
Diretivas de pragma permitem que você desative ou restaure alertas do compilador através dos seus identificadores. Porém, embora esses identificadores sejam uma ótima maneira de se comunicar com o compilador, podem ser difíceis de serem compreendidos por desenvolvedores humanos. Sem um conhecimento abrangente, pode não ser claro ao que um identificador como CS0168
ou CS0618
se refere ou o que requer atenção.
Consultas de LINQ costumam ser complexas e envolver diversas transformações e projeções. E depurar consultas complexas de LINQ pode demorar bastante, especialmente quando se lida com grandes conjuntos de dados. Para ajudar você a inspecionar facilmente a saída de cada etapa da consulta, agora o ReSharper mostra os resultados intermediários como dicas de inserção durante a depuração.
Com adornos no editor mostrando resultados intermediários, agora você deve ser capaz de identificar rapidamente se há algum valor inesperado ou corrigir as transformações que acontecerem durante o processo.
O ReSharper C++ introduz a refatoração Safe Delete para permitir que você remova símbolos do código-fonte com segurança. Essa refatoração está disponível para classes, funções, variáveis, enumeradores, namespaces e até mesmo conceitos.
Antes de excluir um símbolo, o ReSharper C++ pesquisa seus usos e permite visualizar as alterações no código-fonte, para que você possa ter certeza de que todas as remoções são intencionais. Se você tentar excluir uma entidade complexa, como uma classe ou um namespace, o ReSharper C++ verificará recursivamente os usos de todos os seus membros.
Esta versão traz suporte a diversos novos recursos da linguagem, incluindo if consteval
, módulos-padrão de biblioteca do C++ 23, o atributo [[no_unique_address]]
e operator()/operator[]
estático.
O ReSharper 2023.2 introduz algumas novas opções de reformatação de código em C#, projetadas para melhorar a legibilidade de chamadas de métodos encadeadas.
A primeira opção de formatação do código controla se vem uma quebra de linha antes da primeira chamada a um método. A segunda opção é para situações nas quais se misturam invocações a métodos e a propriedades. Ela determina se deve ou não ser inserida uma quebra de linha depois da invocação da propriedade.
O AI Assistant não é distribuído juntamente com o ReSharper e precisa ser instalado separadamente. Por enquanto, há uma lista de espera para o acesso ao recurso do AI Assistant.
Saiba mais sobre o AI Assistant e sobre como instalá-lo através do Toolbox App ou do instalador do dotUltimate na nossa página de ajuda na Web.
Como padrão, o AI Assistant dentro do ReSharper reconhece o seu ambiente de desenvolvimento: as linguagens de programação, os frameworks, as bibliotecas e as tecnologias usadas na solução. Isso permite que a IA gere respostas mais precisas e específicas às suas consultas.
A opção Smart chat permite que o AI Assistant referencie arquivos e símbolos específicos, recupere fragmentos de código ou as últimas alterações e procure usos de métodos específicos. Como resultado, ele pode oferecer sugestões ainda mais precisas.
Com o plug-in do AI Assistant instalado, as ações de contexto do ReSharper oferecem diversas opções que usam IA. O AI Assistant pode ajudar você a:
O modo preditivo do depurador, que estamos introduzindo no ReSharper 2023.2, é capaz de prever todos os estados possíveis deflagrados pela execução de um programa, sem ter que executá-lo de fato, o que torna possível:
O depurador preditivo oferecerá um novo nível de insight sobre a execução do seu programa. Ele também permitirá a você experimentar valores diferentes e investigar problemas no seu código sem precisar reiniciar o processo de depuração a cada alteração.
Você pode ativar o depurador preditivo indo até ReSharper | Options | Tools | Debugger | Editor Integration | Predictive debugger | Show predicted values (beta).
No momento, este depurador está no estágio de beta, o que significa que o seu feedback é crucial para que ele atinja seu pleno potencial. Não deixe de relatar quaisquer bugs que você encontrar no nosso rastreador de issues, juntamente com quaisquer sugestões ou solicitações que você tiver.
O ReSharper 2023.2 oferece uma maneira de fazer uma comparação detalhada entre duas assemblies. Este recurso é especialmente útil ao inspecionar as diferenças entre duas versões de uma assembly específica e procurar por vulnerabilidades em potencial que possam ter sido introduzidas em uma versão mais recente.
Para comparar assemblies, clique em Compare Two Assemblies na janela de ferramentas Assembly Explorer. Tanto aplicativos em um único arquivo quanto arquivos .exe
ou .dll
podem ser selecionados para comparação.
Clique aqui para saber mais sobre este recurso.
No ReSharper 2023.2, revisamos nossa abordagem do cache de dados exigido pelo IDE para o funcionamento de seus sistemas. Esta revisão, apoiada por inúmeros testes de desempenho, resultou em uma redução perceptível do espaço em disco consumido por cada solução que você abrir. Em termos práticos, isso significa, no geral, menos tempo gasto fazendo leituras e gravações no disco e tempos mais rápidos de carregamento das soluções.
Outra alteração foi a refatoração da lógica interna de construção de componentes do ReSharper, que levará a solução a ser carregada mais rapidamente. Clique aqui para saber mais.
Avaliação gratuita por 30 dias disponível