Novidades no Rider

O Rider 2022.3 oferece suporte ao SDK do .NET 7, incluindo os últimos recursos do C# 11. Esta versão demonstra melhorias significativas de desempenho, com foco em especial no tempo de inicialização e na capacidade de executar o Rider no WSL 2 (Subsistema Windows para Linux 2) através de desenvolvimento remoto. Também introduzimos várias mudanças significativas na experiência e na interface de usuário, como a capacidade de encaixar janelas de ferramentas em configurações de múltiplos monitores. Por último, mas não menos importante, esta versão aumenta a integração com os editores do Unity e do Unreal.

Desempenho

Desempenho

Fizemos várias mudanças para diminuir o tempo de inicialização do Rider e a demora para abrir uma solução e começar a trabalhar:

  • Agora o instalador do Rider pode adicionar arquivos executáveis à lista de exclusões do Windows Defender, diminuindo significativamente o tempo de inicialização.
  • Agora o Rider pode carregar um arquivo de solução e montar sua árvore de projetos instantaneamente, sem ter que esperar pela inicialização do back-end.
  • Removemos todas as barras de carregamento do Solution Explorer, para uma interface de usuário mais limpa. De agora em diante, todas essas barras de carregamento serão mostradas na barra de status do IDE.
  • Introduzimos um novo parser para C#, que oferece realce básico de sintaxe durante a inicialização e depois a experiência plena quando o Rider estiver inicializado e a sua solução estiver completamente carregada.
  • Também introduzimos várias melhorias no desempenho do Rider no back-end. We’ve enabled server garbage collection (GC) to get better memory throughput for the backend process. Além disso, atualizamos o runtime para o serviço de linguagem do back-end do Rider, do .NET 6 para a última versão, .NET 7. E por último, mas não menos importante, o Rider agora pode executar builds em paralelo, quando os projetos não tiverem interdependências. Combinadas, estas mudanças tornam perceptivelmente mais rápido o carregamento de soluções com muitos projetos.

Saiba mais sobre as melhorias de desempenho no Rider aqui.

Suporte a WSL 2

Agora o Rider tem suporte ao WSL 2 (Subsistema Windows para Linux 2) através do recurso de desenvolvimento remoto do IDE. Isso significa que você pode usar o Rider em uma instância do WSL2 para navegar pelas suas soluções e códigos-fonte, além de desenvolver, depurar e executar aplicativos como se eles estivessem armazenados localmente.

Pode-se iniciar um processo simples de configuração diretamente da tela de boas-vindas do Rider. A interface de usuário será disponibilizada através do recurso de desenvolvimento remoto, o que significa que a WSLg não é necessária e um cliente local de desenvolvimento remoto será instalado automaticamente. Para mais informações, consulte a documentação do desenvolvimento remoto.

UI/UX

Encaixe das janelas de ferramentas

Finalmente chegou a muito solicitada opção de encaixar janelas de ferramentas em abas flutuantes do editor! Para tornar mais conveniente a organização do seu espaço de trabalho e a interação com o Rider em múltiplos monitores, implementamos a opção de arrastar as janelas de ferramentas para fora da janela principal e encaixá-las em abas flutuantes do editor.

Atualização do Search Everywhere

Ajustamos o algoritmo por detrás da lista de resultados do Search Everywhere para tornar seu comportamento mais previsível e oferecer maior precisão na seleção dos elementos que você está procurando. Agora, quando você começa a digitar sua consulta, o IDE congela os primeiros resultados de pesquisa exibidos e não os reordena quando mais opções são encontradas (como acontecia em versões anteriores).

Novo diálogo "Attach to process"

Introduzimos um novo diálogo Attach to process para melhorar a sua experiência de usuário, especialmente ao anexar o depurador a um processo via SSH. Nosso objetivo é ajudar você a encontrar e selecionar o processo correto mais rapidamente, além de fazer o IDE se lembrar do depurador escolhido.

Ação de colar reformulada

Ação de colar reformulada

Melhoramos a experiência de edição reformulando o comportamento da ação de colar (⌘V / Ctrl+V). Agora, quando você copiar (⌘C / Ctrl+C) ou recortar (⌘X / Ctrl+X) uma linha sem código selecionado, a ação de colar adicionará o conteúdo da área de transferência acima da linha atual, e não na posição do cursor, como acontecia nas versões anteriores.

Colar JSON como Classes

Colar JSON como Classes

Agora há uma ação Edit | Paste Special: JSON as Classes que permite fazer a "colagem inteligente" de objetos. Por exemplo, se você precisar copiar um JSON e colá-lo usando esta ação, ela gerará classes de C# automaticamente, com base naquele JSON.

Nova interface de usuário Demonstração Antecipada

Convidamos você a passar para a nova interface de usuário para IDEs baseados no IntelliJ em Preferences/Settings | Appearance & Behavior | New UI Preview. A nova interface de usuário é um trabalho em andamento que visa reduzir a complexidade visual do IDE e ajudar você a se concentrar no seu trabalho.

Outro

Também continuamos a implementar pequenas otimizações na experiência e na interface de usuário do Rider, para torná-lo mais relevante e útil:

  • Fizemos uma limpeza no menu Add, para ele só apresentar os itens que forem relevantes à solução ou projeto atual.
  • A ação Open in Terminal agora está no menu de contexto do Solution Explorer.
  • A opção File | New no menu superior foi renomeada para File | New Solution, para refletir melhor a ação que ela realmente executará.
  • Adicionamos uma ação para alternar entre soluções dentro do Solution Explorer. Agora, clicar numa solução que não aquela na qual você está trabalhando abrirá um menu de contexto, onde você poderá selecionar Open para ao mesmo tempo fechar a solução ativa quando você alternar.

Suporte para o SDK NET 7

Suporte ao SDK do .NET 7

O Rider 2022.3 fornece suporte oficialmente para o SDK .NET 7, incluindo:

  • Templates de projeto atualizados.
  • Gerenciamento Central de Pacotes do NuGet.
  • Suporte a grupos de rotas em APIs mínimas do ASP.NET na janela de ferramentas Endpoints.
  • Novos recursos do C# 11, incluindo tipos de arquivos locais, literais UTF-8, campos ref e palavra-chave scoped.
  • A capacidade de criar, executar e depurar projetos que visem o novo SDK.

Suporte para C#

C# 11

Literais UTF-8

Literais UTF-8

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.

Tipos de arquivos locais

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.

Strings brutas

Strings brutas

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.

Sugestões de uso de padrões de listas

Sugestões de uso de padrões de listas

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.

Membros virtuais estáticos

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 Rider foi atualizado para tratar membros static polimórficos da mesma maneira como trata membros polimórficos comuns:

  • Marcações de herança na medianiz.
  • Navegação para membros de implementação e superclasses.
  • Geração de implementações omitidas.
  • As sugestões de complementação de código depois da palavra-chave override agora também incluem os membros da interface, de modo que agora você pode facilmente implementar membros abstratos ou virtuais estáticos.
Operador de deslocamento à direita sem sinal (>>>)

Operador de deslocamento à direita sem sinal (>>>)

Agora o Rider 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.

Correspondência de padrões entre spans

Correspondência de padrões entre spans

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 Rider agora sugere usar as expressões is e switch, em vez de um monte de declarações if.

Campos ref e palavra-chave scoped

A partir do C# 11, você pode declarar campos ref dentro de structs ref. O Rider 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 Rider 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 Rider 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.

Injeções de linguagens

Esta versão traz diversas melhorias nas injeções de linguagens:

Adicionamos o suporte a injeções de linguagens usando os atributos [StringSyntax] (do .NET 7) e [LanguageInjection] (das JetBrains.Annotations), além do suporte ao comentário de instruções // lang=<language_name> em Injeções de linguagens.

Injeções de linguagens agora são possíveis em strings interpoladas e concatenações de strings em qualquer linguagem. Antes, isso só estava disponível para SQL. Observe que os erros de sintaxe são suprimidos ao se usar a interpolação de strings ou a concatenação com expressões arbitrárias. Injeções de linguagens dentro de strings brutas do C# 11 também têm suporte.

Agora é exibida uma guia de indentação em strings brutas, separando a indentação do valor propriamente dito.

Atualizações gerais para o C#

Marca de importações globais na medianiz

Marca de importações globais na medianiz

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 Rider pode navegar até o local onde ele foi declarado, incluindo navegar até tags <Using Include="Some.NameSpace" /> no arquivo de projeto .csproj.

Marca de importações globais na medianiz

O Rider também apresenta importações globais de _Imports.razor e permite a navegação até as definições de importação correspondentes.

Complementação assistida por aprendizado de máquina para C#

Complementação assistida por aprendizado de máquina para C#

Em um esforço para ajudar você a simplificar e acelerar o seu processo de desenvolvimento, estamos introduzindo a classificação de elementos assistida por aprendizado de máquina nas opções de complementação de código em C#.

Para melhorar a sua experiência ao usar esse recurso, há duas opções que você pode habilitar em Settings/Preferences | Editor | General | Code Completion | Machine Learning-assisted Completion:

  • Mark position changes in the completion popup
  • Mark the most relevant item in completion popup
Complementação de strings de formato

Complementação de strings de formato

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.

Conversão de padrões triviais em expressões

Conversão de padrões triviais em expressões

À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 Rider 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.

Dicas de complementação de código para expressões void

Dicas de complementação de código para expressões void

À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.

Desenvolvimento Web

Blazor

Blazor

O Rider 2022.3 introduz o Hot Reload para aplicativos de servidor do Blazor. Quando você modificar o código-fonte no seu aplicativo de servidor do Blazor enquanto esse aplicativo estiver em execução, o Rider perguntará se você deseja aplicar essa alteração ao aplicativo em execução sem reiniciá-lo. Observe a barra de notificação amarela Sources are modified na parte superior do editor de texto. Se você aceitar a alteração, sua aplicação será atualizada imediatamente, e será possível continuar trabalhando com a aplicação atualizada.

Tela de boas vindas

Internet Information Services (IIS)

Respondendo a uma solicitação popular na nossa comunidade, adicionamos uma nova configuração de execução IIS Application, para executar e depurar aplicativos ASP.NET clássicos em um servidor IIS. Também estamos introduzindo o suporte ao nome de comando IIS, do arquivo launchSettings.json, em aplicativos ASP.NET Core.

Endpoints

Endpoints

Continuamos a melhorar nosso suporte a Endpoints e ao Endpoints Viewer. Agora o visualizador também reconhece corretamente e coleta endpoints para grupos de rotas de API mínima do ASP.NET Core 7. Isso significa que você pode pesquisar os endpoints declarados com a API MapGroup(), navegar por eles e usar neles a complementação de código inteligente, além dos recursos que já estavam disponíveis.

Ação ".NET User Secrets"

Ação ".NET User Secrets"

Foi adicionada a ação .NET User Secrets, para projetos em ASP.NET.

Projetos de Web em JavaScript/TypeScript

Projetos de Web em JavaScript/TypeScript

O Rider agora gera automaticamente uma configuração de execução npm para projetos Web em JavaScript e TypeScript (.esproj) referenciados pela solução (.sln).

Code Vision para JavaScript e TypeScript

Code Vision para JavaScript e TypeScript

As dicas embutidas do Code Vision agora também funcionam para JavaScript e TypeScript. Essas dicas facilitarão o rastreamento dos usos de várias classes, métodos, aliases de tipo e interfaces no seu código.

Suporte a CSS

Suporte a CSS

Agora o IDE compreende a "regra at" @supports, que associa um bloco de instruções a uma condição @supports. This build also includes support for viewport units, range media queries, container queries, @layer (Cascade layers), and color modification functions.

Atualizações para Angular

Atualizações para Angular

Adicionamos suporte para a restrição de tipos em templates Angular, o que fornecerá informações de tipo mais precisas e melhores sugestões de complementação de código.

Além disso, o Rider agora exclui a pasta de cache .angular das buscas globais, para ajudar a dar melhores resultados de busca.

Desenvolvimento de jogos

Suporte para o Unity

O suporte ao Unity no Rider está ganhando outra grande atualização, com alguns novos recursos, melhorias aos já existentes e também algumas correções.

Adicionamos o suporte ao novo pacote Input System do Unity. O Rider reconhece quando se usam métodos como manipuladores de eventos de entrada e não os mostra mais como não utilizados. Find Usages também funciona com esses métodos, mostrando quando eles são usados no código ou no arquivo .inputactions.

É ótimo poder carregar recursos de jogo em tempo de execução e o Rider agora pode ajudar a garantir que você esteja usando o caminho correto nos métodos Resources.Load. O Rider mostra a complementação de código enquanto você digita e realça qualquer recurso desconhecido com um alerta.

O Rider já vem oferecendo a complementação e a verificação de nomes de tags há várias versões, e a versão 2022.3 adiciona um novo suporte ao grupo de métodos GameObject.FindWithTag. Ela também oferece complementação de código enquanto você digita e avisa se você tentar usar uma tag que não existe no projeto.

Em projetos do Unity, é muito importante manter os meta-arquivos sincronizados com os arquivos e pastas do seu projeto. O Rider 2022.3 dará um alerta se você tentar fazer o commit de um meta-arquivo de uma pasta vazia no controle de fontes. Ainda mais útil que isso, se o editor do Unity estiver aberto, o Rider avisará você se houver alguma cena ou recurso não salvo, ajudando você a ter certeza de que não deixou de fazer alterações ao fazer o commit.

É claro que também há muitas outras melhorias e correções menores. Reduzimos o tempo que demora para carregar projetos extremamente grandes, adicionamos uma notificação que aparece se você tentar editar um arquivo de pacote somente para leitura e melhoramos o Find Usages para que possa ser usado para métodos em prefabs aninhados e arrays de manipuladores de eventos.

No suporte a DOTS, o Rider agora não marca mais classes que implementam IBaker ou IAspect como não utilizadas.

Você pode desabilitar as inspeções de nomeação em campos serializados e fazer com que estes sejam tratados como campos normais, e agora os links para a documentação on-line apontam para os lugares certos.

Gostaríamos de agradecer à Unity por fornecer uma correção para ajudar a depurar jogadores no Nintendo Switch.

Suporte para o Unreal Engine

Rename com Core Redirects

O Rider já oferece a opção de adicionar CoreRedirects ao renomear classes ou propriedades do Unreal através da refatoração Rename. Agora isso também funciona para:

  • Renomear UFUNCTION()
  • Renomear USTRUCT()
  • Renomear UENUM

Quando você executa a refatoração Rename, agora o Rider sugere adicionar CoreRedirects também nesses casos.

Se você concordar, o arquivo .ini correspondente será atualizado automaticamente.

Ficou muito mais difícil criar erros no seu jogo acidentalmente ao renomear as coisas!

Code Vision atualizado para Blueprints

O Rider 2022.3 introduz uma nova métrica do Code Vision, específica para Blueprints. Agora você pode verificar rapidamente quantos Blueprints usam a função BlueprintCallable e obter uma lista de todos os usos a partir do menu de contexto do Code Vision.

Ferramenta Generate GUID

Agora a ferramenta Generate GUID dá suporte ao formato GUID do Unreal Engine. Sempre que você precisar gerar um GUID rapidamente, basta selecionar Tools | Generate GUID... no menu e o formato hexadecimal preferido será pré-selecionado.

Importação automática

O recurso de importação automática na complementação pode lhe poupar muito tempo. Mas se ele adicionar uma diretiva #include incorreta, pode ser complicado detectar o problema. Trabalhamos duro para aperfeiçoar esse recurso e assegurar que ele não sugira entidades indesejadas dos cabeçalhos do sistema na importação automática. Como padrão, cabeçalhos do sistema não são sugeridos, mas se você quiser que eles o sejam, você pode habilitá-los em Settings/Preferences | Languages & Frameworks | C++ | Unreal Engine.

Log UnrealBuildTool

Melhoramos a apresentação dos logs UnrealBuildTool. Para garantir que você não deixe de ver nenhum alerta ou erro relacionado às configurações do projeto, o painel de logs agora inclui carimbos de data e hora e preserva os logs das execuções anteriores da UnrealBuildTool.

Suporte nativo a .uproject

Em projetos baseados no Unreal Engine, o Rider funciona tanto com projetos .sln quanto com .uproject. Continuamos a melhorar o suporte ao modelo .uproject nativo, para torná-lo mais preciso e confortável de se trabalhar:

  • O Rider 2022.3 respeita locais adicionais de código-fonte especificados em .project, mais especificamente em AdditionalRootDirectories e AdditionalPluginDirectories.
  • Ele também dá suporte a programas personalizados colocados no local do jogo e gera corretamente todos os arquivos de projetos dos programas.
  • Agora o Rider dá suporte a módulos específicos da plataforma contendo vários arquivos .Build.cs.
  • A complementação e as inspeções nos arquivos .uplugin e .uproject agora têm suporte quando se usa o modelo de projeto .uproject.
  • Agora, sempre que for usado o modelo .uproject, as configurações de execução são geradas automaticamente para programas C++.

Ação "Attach to Unreal Editor"

Implementamos uma ação Attach to Unreal Editor para projetos do Unreal Engine. Essa ação permite que você anexe um depurador a um processo do Unreal Engine rapidamente, sem precisar localizar o processo correto manualmente. Atualmente, você só pode anexar um depurador ao mesmo processo ao qual o UnrealLink está conectado, o que significa que o projeto em execução no Unreal Editor precisa corresponder àquele com o qual você está trabalhando no Rider. Estamos trabalhando para melhorar esse workflow em versões futuras.

Suporte a ARM64 Demonstração Antecipada

Prévia antecipada do suporte para ARM64

Agora o Rider 2022.3 pode ser executado no Windows e no Linux para ARM64. Todos os workflows básicos de desenvolvimento têm suporte, incluindo a execução e a depuração de aplicativos .NET e a execução de testes de unidade. Porém, embora continuemos a trabalhar e a fazer testes para garantir que o Rider funcione sem problemas em processadores ARM64, queremos colocar você a par das seguintes limitações:

  • Atualmente, não há planos de dar suporte ao desenvolvimento com o Unreal Engine no Windows para ARM64, porque a Epic Games não dá suporte ao Unreal Engine nessa arquitetura.
  • O suporte para o Unreal Engine no Linux para ARM64 ainda está em desenvolvimento.
  • Está disponível um suporte básico para projetos do Visual C++ no Windows para ARM64, embora isso ainda não inclua a depuração de aplicativos compilados nativamente. Você pode acompanhar o progresso nessa questão aqui.

Plug-ins

Profiling de memória no macOS e Linux dotUltimate

Além do Windows, agora o dotMemory também está disponível para o JetBrains Rider no Linux e no macOS. Dois novos modos de profiling estão disponíveis no widget Run e na opção Run | Switch profiler configuration do menu – Memory (sampled allocations) e Memory (full allocations). Você pode saber mais sobre as diferenças entre esses modos na Ajuda do dotMemory.

Você pode anexar o profiler a um processo em execução a partir do menu Run e ver o Timeline Graph se desenrolando em tempo real. Selecione um intervalo para abrir a visualização Memory Allocations, que é a mesma do dotMemory Standalone. Isso permite que você analise os objetos alocados e a árvore de chamadas de alocação para um intervalo de tempo específico.

Infelizmente, ainda não é possível obter snapshots de memória nesta versão.

Dynamic Program Analysis

Dynamic Program Analysis

A Dynamic Program Analysis (DPA) tem novas inspeções que permitem encontrar vários problemas relacionados ao uso de bancos de dados. Especificamente:

  • Tempos de execução de comandos longos demais
  • Excesso de conexões a bancos de dados
  • Excesso de comandos de banco de dados executados ao mesmo tempo
  • Comandos que retornam registros demais

As novas inspeções estão disponíveis para todos os aplicativos que usarem o Entity Framework Core e um provedor .NET de dados para o SQL Server.

dotCover dotUltimate

Dynamic Program Analysis

Navegação mais fácil até os testes

Adicionamos a ação Show Covering Tests aos menus de contexto do dotCover, tanto no editor de código quanto na janela Unit Test Coverage. Esta ação mostra um pop-up com todos os testes de cobertura juntos no mesmo lugar. O pop-up também permite criar uma nova sessão de cobertura.

Shadow copying mais rápido

Agora o dotCover copia apenas as assemblies e os arquivos de símbolos necessários para a testagem contínua no JetBrains Rider. Isso melhora o desempenho total do dotCover, especialmente em projetos grandes, porque o dotCover não precisa mais copiar toda a pasta de trabalho. Se necessário, você pode ajustar o filtro de arquivo shadow-copy nas configurações do dotCover.

Suporte aprimorado para o Unity

Antes, para analisar a cobertura de testes do Unity, você tinha que reiniciar o Unity com o suporte à cobertura habilitado. A partir desta versão, não é mais necessário reiniciar o Unity e a cobertura de testes já tem suporte como padrão.

Suporte para NuGet

O Gerenciamento Central de Pacotes (também conhecido como o arquivo Directory.Packages.props) é um recurso em evolução do conjunto de tecnologias do .NET. À medida que esse recurso for sendo aperfeiçoado, ele deve tornar as soluções de gerenciamento mais fáceis no futuro. Com a adição do CPM ao Rider, os desenvolvedores devem ter mais controle sobre suas dependências.

Você pode saber mais sobre o Gerenciamento Central de Pacotes, incluindo dicas e ressalvas, nesta postagem do nosso blog.

Sempre que você usar pacotes do NuGet de código aberto nas suas soluções, há o risco de expor o seu projeto a vulnerabilidades de segurança. Para diminuir esse risco, estamos introduzindo no Rider a detecção de dependências vulneráveis. O IDE alertará você sobre dependências vulneráveis associadas ao uso de pacotes do NuGet, através de pop-ups de notificação, que poderão ser investigados mais a fundo na seção Security da visualização Problems. Também é possível encontrar informações sobre as dependências vulneráveis associadas aos pacotes incluídos na solução na janela NuGet Package Management, selecionando um pacote específico.

Também melhoramos a experiência de rolagem dentro da lista Packages, na janela de ferramentas do NuGet.

Suporte a F#

O Rider 2022.3 introduz o suporte ao F# 7, traz diversas correções de pequenos problemas e adiciona algumas melhorias de qualidade de vida.

Melhor suporte à documentação em XML

Melhor suporte à documentação em XML

Agora, ao se digitar < dentro de um comentário, será adicionado um modelo de documentação. Além disso, a edição de comentários na documentação ficou mais fácil com o realce de sintaxe e a complementação de código.

Complementação de código para registros

Complementação de código para registros

Uma nova regra de complementação de código simplifica a digitação de expressões record ao enfatizar campos do tipo inferido record, ocultando todos os que já tiverem sido usados e corrigindo vários casos em que anteriormente nenhuma sugestão era mostrada.

Arquivos de assinatura

Arquivos de assinatura

Adicionamos novas correções rápidas, Update parameter name e Update record field, que atualizam arquivos de assinatura, tornando mais fácil utilizá-los ao se alterar o código. A huge thanks goes to Florian Verdonck for implementing them!

Estes foram só alguns destaques das melhorias no suporte a F#. You can find the full list of F# features included in the 2022.3 release here.

Suporte para bancos de dados

Aqui estão alguns destaques dos novos recursos do Rider 2022.3 para trabalhar com bancos de dados:

  • Filtro rápido – Você pode filtrar os resultados e ocultar objetos sem correspondência ao usar a pesquisa rápida.
  • Filtragem de esquemas baseada em padrões – Agora você pode escolher bancos de dados ou esquemas para introspecção com base em padrões de expressões regulares.
  • Formatos para campos de data e hora – Você pode personalizar como serão exibidos campos dos tipos data e hora no editor de dados.
  • Edições múltiplas na janela Modify – Agora você pode editar vários objetos ao mesmo tempo.

Saiba mais: Novidades no DataGrip 2022.3

Diversos

Visualizador IL

Visualizador IL

Agora a janela de ferramentas IL Viewer do Rider é 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.

Realce de código

Realce de código

Realces de código e sublinhados ondulados foram reformulados no Rider 2022.3. Devido a uma diferença de lógica interna, o Rider 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.

Além disso, o Rider agora mostra Roslyn Analyzer ID e URL Reference em uma dica de ferramenta Quick Documentation para inspeções, produzida pela Roslyn Analyzers.

Formatação em C++

Formatação em C++

Implementamos a opção de executar um binário clang-format diretamente, em vez de usar o motor de formatação do Rider, garantindo a 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. Você pode alternar entre as opções interna e externa de clang-format indo até Settings | Editor | Code Style | C++ e selecionando a opção Clang-format.

Depurador

Melhoramos drasticamente o desempenho do depurador desabilitando a opção Allow property evaluations and other implicit function calls. Agora o depurador pode avaliar muitas expressões mais no modo sem efeitos colaterais em projetos de .NET, .NET Framework e .NET Core.

Testes de unidade

Tornamos a árvore do explorador de testes de unidades "preguiçosa", para ela ficar mais rápida e usar menos memória. Antes, todos os nós eram criados automaticamente, juntamente com a árvore de testes de unidades, fazendo-a demorar para ser explorada e ocupando muita memória. Agora, apenas serão criados nós que pertençam às partes expandidas da árvore, melhorando perceptivelmente o desempenho.

MSBuild

  • Habilitamos como padrão a coleta de lixo no servidor para .NET Core 17+ MSBuilds.
  • Agora o Rider consegue detectar quando não há memória suficiente para a versão de 32 bits do MSBuild e alterna para a versão de 64 bits do Visual Studio.

Desempenho

A Solution Wide Analysis e o comando Find usages foram refatorados. Testes internos mostram que o seu desempenho está 20-40% mais rápido que antes.