O ReSharper 2022.3 apresenta suporte básico para os recursos mais recentes do C# 11, incluindo literais UTF-8, tipos locais de arquivo, membros virtuais estáticos, correspondência de padrões entre spans e muitos outros. Para este lançamento, reformulamos o realce de código, introduzimos a detecção de dependências vulneráveis para pacotes NuGet e habilitamos a importação e exportação de diagramas de dependência de tipos e projetos no formato GraphML. Esta versão também vem com suporte inicial para o Microsoft Visual Studio em execução no ARM64.
Avaliação gratuita por 30 dias disponível
Estamos finalizando o suporte básico para os recursos mais recentes do C# 11:
Adicionamos o suporte básico a literais UTF-8
. Agora, a análise de código sugere usar um sufixo u8
para um literal, em vez do método System.Text.Encoding.UTF8.GetBytes()
, ou então uma matriz de bytes com símbolos UTF8
adequados. Há também um novo conjunto de alertas e erros do compilador para literais UTF-8
.
O suporte básico a tipos de arquivos locais inclui compreender a nova sintaxe, um modificador de acessibilidade file
para os tipos e alertas e erros do compilador, com as correções rápidas correspondentes, como Move class to outer scope quando o modificador file
for especificado para uma classe aninhada. Há ainda uma nova ação de contexto que é útil para converter um tipo geral em um tipo de arquivo.
Agora o Rider pode converter strings regulares e textuais em seus equivalentes brutos. Isso também significa que vários recursos já existentes para strings agora também estão disponíveis para strings brutas.
Introduzimos nesta versão sugestões de uso da nova sintaxe de padrões de listas do C# 11 (em vez de verificações convencionais de tamanho de coleções seguidas de uma expressão de acesso ao indexador) para verificar os itens correspondentes da coleção.
A partir do C# 11, você pode usar modificadores abstract
e virtual
para membros static
em interfaces e usar esses membros em código genérico, com os parâmetros do tipo limitados por essa interface. O ReSharper foi atualizado para tratar membros static
polimórficos da mesma maneira como trata membros polimórficos comuns:
override
agora também incluem os membros da interface, de modo que agora você pode facilmente implementar membros abstratos ou virtuais estáticos
. >>>
) Agora o ReSharper reconhece o desajeitado padrão de código que os desenvolvedores em C# precisam escrever para fazer um deslocamento à direita sem sinal em tipos de dados com sinal e sugere usar o operador de deslocamento à direita sem sinal (>>>
) no C# 11.
Se você costuma fazer parsing de spans de caracteres, provavelmente usa muito o método MemoryExtensions.SequenceEqual
. O C# 11 introduz uma abreviatura desse tipo de verificação. Agora você pode simplesmente fazer uma correspondência de padrões entre spans de caracteres e literais de string, usando expressões is
ou switch
.
O ReSharper agora sugere usar as expressões is
e switch
, em vez de um monte de declarações if
.
ref
e palavra-chave scoped
A partir do C# 11, você pode declarar campos ref
dentro de structs ref
. O ReSharper dá suporte a essa nova regra de sintaxe, fornece todos os erros e alertas do compilador, mostra uma palavra-chave ref
na complementação de código e permite que esses campos sejam inicializados em um construtor.
O ReSharper também reconhece uma nova palavra-chave scoped, que você pode usar em argumentos e variáveis locais ref
ou ref struct
. Esse suporte inclui o parsing correto da nova sintaxe, a palavra-chave scoped
na complementação de código e a preservação dessa palavra-chave ao gerar overrides de métodos. O Rider também verifica a compatibilidade de modificadores scoped
e oferece correções rápidas para parâmetros scoped
desbalanceados nos overrides, implementações de interface e conversões delegadas.
O C# 11 e o .NET 7 também introduziram mudanças nas regras de segurança da linguagem para ref
. As mudanças determinam quais operações estão disponíveis para variáveis ref
and ref struct
, para dar segurança no uso de ref
em código gerenciado, com a introdução de campos ref
. O ReSharper reconhece essas mudanças e ajudará você a localizar as partes do seu projeto que precisam ser atualizadas e anotadas com a nova palavra-chave scoped
para acomodar essas mudanças ao migrar para o C# 11 ou o .NET 7.
Com o lançamento 2022.3, estamos introduzindo algumas mudanças no suporte para injeções de linguagem:
As injeções de linguagem agora funcionam dentro de literais de string brutos do C# 11.
ReSharper supports the [StringSyntax]
attribute from .NET 7, along with its different syntaxes for language injection and code completion.
Há um novo ícone de marcação na medianiz, para notificar os usuários sobre importações implícitas de namespaces em arquivos do C# e do Razor.
Pressionando Alt+Enter na linha correspondente, você pode observar a lista completa de importações implícitas e dados sobre o arquivo de fonte no qual estão localizadas as diretivas global using correspondentes. Se você selecionar um determinado namespace importado, o ReSharper der pode navegar até o local onde ele foi declarado, incluindo navegar até tags <Using Include="Some.NameSpace" />
no arquivo de projeto .csproj
.
O ReSharper também apresenta importações globais de _Imports.razor
e permite a navegação até as definições de importação correspondentes.
Com a adição dos tipos numéricos Int128
e UInt128
no .NET 7, atualizamos nossas sugestões de especificadores de formato de complementação de código.
Também adicionamos o suporte que faltava para os tipos de data e hora DateOnly
e TimeOnly
do .NET 6, além do tipo numérico de ponto flutuante com meia precisão Half
, introduzido no .NET 5.
Às vezes, depois de uma refatoração, suas expressões de correspondência de padrões podem se tornar padrões recursivos triviais. Quando isso ocorre, pode valer a pena simplesmente não usar mais a sintaxe de padrões recursivos. Então, agora o ReSharper oferece a ação de reescrever os padrões como expressões mais simples, preservando a semântica original de correspondência de padrões.
Às vezes, quando você digita depois de uma invocação, você não vê quase nenhuma sugestão significativa. Isso pode acontecer se a invocação não tiver produzido nenhum valor devido a um método que retorna void
ter sido invocado. Geralmente, só se percebe isso depois de algumas ações no IDE (voltando e navegando até a declaração do método ou passando o mouse sobre a invocação). Nesta versão, introduzimos o item de dica void
sobre esse tipo de invocação que retorna void
, para dar a você um feedback imediato a respeito do tipo que resulta dessa invocação. Se você aceitar esse item void
, será adicionado um ponto e vírgula depois da invocação, se ele estiver faltando.
Realces de código e sublinhados ondulados foram reformulados no ReSharper 2022.3. Devido a uma diferença de lógica interna, o ReSharper costumava entrar em conflito com os analisadores de estilo de código do Microsoft Roslyn, causando realces sobrepostos, o mesmo realce mostrado em lugares diferentes ou a duplicação de sublinhados ondulados. Agora as diferenças de lógica por trás da maioria desses casos foram resolvidas. Nos raros casos excepcionais que restaram, há mensagens de erro com sugestões claras de como resolver o conflito.
Sempre que você usa pacotes NuGet open source nas suas soluções, há o risco de abrir seu projeto a vulnerabilidades de segurança. Embora existam ferramentas externas que o NuGet fornece para detectar essas ameaças, é infinitamente mais conveniente ter uma ferramenta como essa diretamente no seu IDE para detectar quaisquer vulnerabilidades durante o período de design. É por isso que estamos introduzindo a detecção de dependências vulneráveis no ReSharper. A partir deste lançamento, todas as dependências afetadas serão destacadas em arquivos .csproj
e .vbproj
.
O ReSharper pode ser integrado ao Microsoft Visual Studio em dispositivos com processadores ARM. Estamos dando suporte inicial a todos os workflows básicos de desenvolvimento, exceto a correção ortográfica com o ReSpeller.
O instalador foi atualizado para incluir o suporte tanto a x64 quanto a ARM64. A versão correta será instalada automaticamente de acordo com a arquitetura do processador da sua máquina.
Agora o dotPeek, o dotMemory, o dotTrace e o dotCover, além das ferramentas de linha de comando do ReSharper, também suportam Windows ARM64.
O descompilador incorporado no ReSharper 2022.3 vem com suporte para:
static abstract
e static virtual
em interfaces; checked
definidos pelo usuário; Agora, a janela de ferramentas IL Viewer é capaz de descompilar código em diferentes níveis de construções da linguagem C#. Dois níveis de C# estão disponíveis: alto nível, com certas construções de sintaxe simplificadas, usando os últimos recursos da linguagem, e baixo nível, para casos em que você quiser saber como foi "removido o açúcar" dessas construções de sintaxe.
Agora, o ReSharper permite que você salve e importe diagramas de dependência de tipos e projetos no formato GraphML, preservando a capacidade de usar o diagrama como um mapa de código e navegar pelas dependências rapidamente.
A Dynamic Program Analysis (DPA) tem novas inspeções que permitem encontrar vários problemas relacionados ao uso de bancos de dados. Especificamente:
As novas inspeções estão disponíveis para todos os aplicativos que usarem o Entity Framework Core e um provedor de dados .NET para o SQL Server.
O ReSharper C++ 2022.3 adiciona suporte experimental para módulos C++20. Atualizamos o mecanismo da linguagem e muitos dos recursos ReSharper C++ para que eles funcionem com o novo modelo de compilação, com suporte tanto para módulos nomeados quanto para unidades de cabeçalho.
O ReSharper C++ 2022.3 fornece integração perfeita com o clang-format. Agora, você pode alternar entre o próprio mecanismo de formatação do ReSharper e o binário clang-format embutido ou personalizado para formatar arquivos. O ReSharper C++ executa o clang-format em um processo separado, garantindo total compatibilidade com o formatador padrão do setor, além de melhor desempenho e uma gama mais ampla de opções de formatação.
Avaliação gratuita por 30 dias disponível