Novidades no Rider

O Rider 2022.1 inclui suporte total ao Unreal Engine, que transforma o Rider em um IDE completo para desenvolvimento de jogos, independentemente do mecanismo de jogo usado. 

Na v2022.1, o Rider também oferece suporte a uma versão Beta do tão aguardado workflow de desenvolvimento remoto. Ele permite que você se conecte a uma máquina remota executando o back-end do Rider de qualquer lugar do mundo.

Além desses novos recursos, este lançamento também traz o modo Docker Fast, atualizações na barra de ferramentas principal e pesquisa de texto completo em toda a solução diretamente do pop-up Search Everywhere.

Desenvolvimento de jogos com Unreal Engine

O Rider já é amplamente usado no mundo de desenvolvimento Unity e agora vem com suporte ao Unreal Engine. Isso o torna nosso principal IDE para desenvolvedores de jogos de todos os tipos.

Profundamente integrado ao Unreal Engine

Profundamente integrado ao Unreal Engine

O Rider está pronto para desenvolvimento Unreal Engine nas três principais plataformas: Windows, Linux e macOS. Ele funciona nativamente com o modelo .uproject, economizando seu tempo na geração do modelo de projeto intermediário.

O plug-in UnrealLink permite a integração avançada entre o Rider e o Unreal Editor da Epic Games. O plug-in:

  • Traz informações de blueprints ao editor.
  • Adiciona configurações para gerenciar lançamentos de jogos.
  • Fornece uma versão mais conveniente do log do Unreal Editor.
Suporte de primeira classe ao C++

Suporte de primeira classe ao C++

O Rider funciona com o ReSharper C++, que oferece suporte nativo de ponta para o C++ moderno. Aproveite suas mais de 1.300 inspeções de código, mais de 290 correções rápidas, refatorações em toda a solução e recursos de geração de código. Não importa se você está trabalhando com o código C++ do seu jogo, código Unreal Engine ou com shaders, o Rider ajuda a navegar instantaneamente por esse conteúdo e o explica com dicas embutidas.

Saiba mais

Mecanismo de reflexão do Unreal Engine

Mecanismo de reflexão do Unreal Engine

Macros de reflexão e especificadores de reflexão do Unreal Engine são mais do que substituições de texto simples para o Rider. A complementação automática e a documentação rápida conhecem essas entidades e ajudam você a programar com eficiência. Da mesma forma, as chamadas de procedimento remoto do Unreal Engine são mais que funções comuns, e o Rider faz a correspondência entre elas durante a navegação pelo código e na geração do código.

Análise de código ajustada para o Unreal Engine

Análise de código ajustada para o Unreal Engine

O Rider é integrado ao UnrealHeaderTool e mostra os mesmos erros e avisos que você normalmente veria em tempo de compilação no editor enquanto está editando seu código. O processo foi otimizado para ter um impacto mínimo no desempenho geral.

O Rider detecta projetos do Unreal Engine e usa automaticamente as regras de convenção de nomenclatura do Unreal Engine ao gerar e analisar o código nesses projetos.

Depurador

Depurador

O depurador baseado em LLDB com suporte para Unreal Engine Natvis ajuda você desenterrar quaisquer problemas no código do seu jogo ou no mecanismo. Você pode definir pontos de interrupção de linha, símbolo, dados e condicionais. Também pode percorrer o código, avaliar expressões e até mesmo ver os valores das variáveis diretamente no editor do Rider durante a sessão de depuração.

Testes de unidade

Testes de unidade

O Rider vem com suporte imediato para o framework Unreal Engine Automation Testing. Rode testes na janela de ferramentas Unit Test ou diretamente no editor, revise seus resultados e execute novamente os testes com falha, todos os testes ou testes específicos.

Você pode usar o Rider para desenvolvimento geral em C++ no Windows, basta abrir um arquivo .sln como um projeto no Rider. No Linux e no macOS, o Rider está limitado ao modelo .uproject para projetos C++. Se você tiver interesse em saber como o Rider, o CLion e o ReSharper C++ diferem em termos de desenvolvimento geral C++ e Unreal Engine, dê uma olhada nas nossas Perguntas frequentes.

Desenvolvimento remoto Beta

Desenvolvimento remoto

O Rider agora oferece suporte a uma versão Beta do nosso workflow de desenvolvimento remoto. Ele permite que você se conecte a uma máquina remota executando o back-end do Rider de qualquer lugar do mundo. Todo o processamento acontece nessa poderosa máquina remota, e você pode trabalhar no seu projeto exatamente como se estivesse na sua máquina local. Essa funcionalidade pode ser iniciada na tela de boas-vindas do Rider ou em uma nova aplicação chamada JetBrains Gateway, que está disponível no Toolbox App.

Além do mais, você pode criar, pré-compilar, compartilhar, reproduzir, hibernar e gerenciar ambientes de desenvolvimento com o JetBrains Space, uma plataforma unificada para todo o pipeline de desenvolvimento de software. Confira esta postagem do nosso blog para mais detalhes.

Barra de ferramentas

Personalize a nova barra de ferramentas

Personalize a nova barra de ferramentas

A nova barra de ferramentas principal, tão adorada pelos nossos usuários, está com um visual incrível. Antes, não havia como adicionar widgets personalizados ou reorganizar os existentes, o que gerava muitas reclamações. Você pediu, e nós entregamos! Agora, você pode adicionar novos elementos aos lados esquerdo e direito da barra de ferramentas, além de reorganizar e remover widgets.

Há duas maneiras de abrir a página de personalização da barra de ferramentas:

  • Preferences/Settings | Appearance & Behavior | Menus and Toolbars | Toolbar
  • Clique com o botão direito do mouse na barra de ferramentas e selecione Customize Toolbar.
Profiling a partir da nova barra de ferramentas

Profiling a partir da nova barra de ferramentas

Se você usa a nova barra de ferramentas principal, que lançamos no Rider 2021.3, provavelmente notou que não há como iniciar um profiling com o dotTrace imediatamente. Neste lançamento, resolvemos esse inconveniente.

As opções Profile with Timeline, Profile with... e Profile running process... agora estão disponíveis no menu More do widget Run/Debug (o ícone de "kebab").

Modo Docker Fast

O modo Fast chegou para as soluções Docker e Docker-Compose, o que deve reduzir significativamente os tempos de compilação durante o desenvolvimento.

Construir seus projetos dentro de um container pode ser um processo significativamente mais lento do que construir o mesmo projeto na sua máquina local. Com o modo Fast habilitado, o Rider primeiro criará o estágio base da sua imagem do Docker usando docker build, mas depois compilará o projeto na sua máquina host, que é significativamente mais rápida. Por fim, os artefatos do projeto serão montados no container do Docker como um volume. Esse modo é apenas para configurações de Debug. A construção de projetos em Release será feita usando as etapas encontradas no seu Dockerfile.

Você pode desabilitar o modo Fast para qualquer configuração de execução específica via Edit Run Configuration | Build | Modify options | Don’t use Docker fast debug.

Pesquisar texto no Search Everywhere

O Search Everywhere é o principal ponto de entrada quando você procura algo na sua solução, configurações de IDE ou histórico do Git. A partir do Rider 2022.1, adicionamos a nova aba Text, que mostra todas as ocorrências de texto na solução que correspondem à string enquanto você a digita. Ela executa a pesquisa de texto completo em todos os arquivos de código e texto, incluindo arquivos .cs, .fs, .cshtml, .json, .js, .css, .editorconfig, .cvs, .dockerfile, .md e .txt.

Como de costume, todos esses resultados também aparecem na aba All.

No entanto, você pode restringir o escopo dos arquivos nos quais deseja executar essa pesquisa:

  • Por área de pesquisa: All places, Recently viewed files, Local changes ou Data sources.
  • Por tipo de arquivo, com uma lista predefinida de valores ou com máscaras de arquivo especificadas manualmente.

Essa pesquisa de texto no Search Everywhere não afeta o recurso Find in Files existente. Você pode usar ambos.

UI/UX

Nova janela de ferramentas Notifications

Nova janela de ferramentas Notifications

Substituímos a instância de Event Log por uma nova janela de ferramentas Notifications para destacar mais claramente as notificações importantes e úteis do IDE. Com essa atualização, pretendemos tornar as notificações mais visíveis e mantê-las melhor organizadas em uma janela de ferramentas dedicada que você pode acessar na barra de navegação.

Todas as notificações que aparecem na janela de ferramentas Notifications são classificadas em dois tipos: Suggestions e Timeline.

A seção Suggestions apresenta notificações que são consideradas úteis ou práticas na maioria dos casos de uso. Além disso, as notificações em Suggestions podem ser importantes ou comuns. Se você receber uma importante, verá um círculo vermelho no ícone de sino na barra de navegação. Sugestões regulares são indicadas por um círculo azul no ícone de sino.

Indicador de zoom

Indicador de zoom

No passado, era difícil determinar se o zoom no conteúdo do editor de texto estava ampliado ou reduzido. Não havia um indicador visível que mostrasse explicitamente o status atual do zoom.

Neste lançamento, apresentamos o widget Zoom, que aparece na parte inferior do editor de texto atual. Ele mostra o tamanho real da fonte do editor e ajuda a redefini-la para o valor padrão.

Nesse widget, você pode navegar diretamente para Preferences/Settings, onde pode ajustar se o zoom deve afetar todos os editores ou apenas o ativo.

Mapa de teclas do Visual Studio 2022

Mapa de teclas do Visual Studio 2022

Adicionamos um novo mapa de teclas do Visual Studio 2022 que resolve todas as diferenças de atalho entre o mapa de teclas atual do Visual Studio e o do Visual Studio IDE (por exemplo, Alt+Up/Down) em favor dos atalhos deste último. Isso é recomendado para quem está acostumado com as versões do Visual Studio anteriores a 2022 sem o ReSharper.

Suporte para linguagens

Suporte para C#

We continue to improve support for C# 10, particularly global usings. Implementamos duas novas refatorações que também estão disponíveis como ações de contexto.

Extract Global Using pode ajudar a introduzir o conceito de global using no seu projeto. Você pode invocá-la numa diretiva using comum, e o Rider sugerirá sua extração para um arquivo GlobalUsings.cs designado (se ainda não houver esse arquivo no seu projeto, ele será criado). O using comum que não for mais necessário será removido dos arquivos no seu projeto.

Se você decidir refatorar um using global para um using comum, a refatoração Inline Global Using também poderá ser útil aqui. Quando chamada em um using global, ela o remove de GlobalUsings.cs e adiciona a instrução using correspondente aos arquivos no seu projeto quando necessário.

O recurso de usings globais tem suporte em Find Usages e em análises de código para métodos de extensão.

We’ve looked into the approaching C# 11 and supported generic attributes.

Tipos de referência anuláveis

  • Dividimos em duas categorias os avisos para verificações de nulos em expressões que nunca devem ser nulas. O primeiro aviso é para expressões que nunca são nulas porque uma anotação NRT instrui isso. O segundo aviso é para expressões em que há uma verificação de tempo de execução real em busca de nulos.
  • Adicionamos uma nova configuração para alternar para o modo runtime enforced not null warnings only. Ela pode ser acessada a partir do grupo de itens de configuração no menu acionado com Alt+Enter para avisos annotation-based.
  • As anotações [MemberNotNull] e [MemberNotNullWhen] agora têm suporte em projetos que não usam tipos de referência anuláveis.

Razor e Blazor

Aqui estão alguns dos recursos e correções mais importantes que fizemos para o Razor e o Blazor:

  • Adicionamos suporte para o novo atributo [EditorRequired] do .NET 6. A inspeção e a correção rápida correspondentes também estão disponíveis quando você tenta usar um componente Blazor sem especificar os parâmetros necessários.
  • Implementamos o suporte há muito esperado para funções locais C# dentro da sintaxe Razor.
  • Melhoramos a limpeza de código em arquivos .razor com componentes Blazor. Ele não remove mais todas as declarações @using.
  • Também corrigimos as ações de contexto If To Switch e Invert If no código Razor com referências a componentes Blazor.
  • O Rider agora usa o estilo de nomenclatura correto para as propriedades injetadas do Blazor.
  • A ação Comment with Line Comment agora comenta apenas a parte do código Razor que você espera.
  • Adicionamos navegação pela hierarquia de herança ao código Razor. Agora, as marcas de medianiz correspondentes são mostradas para símbolos base e derivados. Você pode clicar nelas para navegar até o código.

Suporte para F#

  • Corrigimos vários problemas em modelos de projeto que poderiam levar a congelamentos enquanto os projetos eram carregados e atualizados, bem como problemas que faziam com que a análise ignorasse alterações em projetos ou outros arquivos. Também abordamos os problemas que faziam com que scripts F# levassem a referências de pacotes não funcionais e diretivas include de outros arquivos.
  • Os projetos C# agora enxergam corretamente os atributos InternalVisibleTo definidos em projetos F#, para que os símbolos internos possam ser acessados sem resultar em erros no IDE.
  • Corrigimos alguns problemas com provedores de tipos, como erros de análise que apareciam anteriormente no código com a mesma instanciação de provedor de tipo.
  • Corrigimos o problema com a refatoração Rename, pois ela não funcionava em alguns símbolos.
  • Além de uma variedade de correções de bugs em diferentes partes do plug-in para F#, o suporte para F# recebeu mais analisadores e correções rápidas que sugerem o uso de recursos do F# recentemente adicionados. Vários recursos existentes também foram aprimorados. You can take a look at the full release notes for more information.

Adicionando referências da Web

Referências da Web

Fizemos várias melhorias para adicionar referências da Web a projetos .NET. Vejamos as mais importantes:

  • Agora, você pode adicionar uma referência da Web a projetos .NET e .NET Core (antes, isso era possível apenas para projetos .NET Framework).
  • Você pode adicionar referências de arquivos .wsdl usando o caminho do arquivo em vez da URL na caixa de diálogo Add Web Reference.
  • Se você adicionar uma referência de serviço web WCF a um projeto, ela aparecerá no nó Services, na janela de ferramentas Solution View.
  • Se a referência de serviço web tiver autenticação básica, o Rider exibirá uma caixa de diálogo para você inserir suas credenciais.
  • Agora há suporte para os prefixos de URI net.tcp e net.pipe.

Desenvolvimento Web

Endpoints

Endpoints

Continuamos a melhorar nosso suporte a Endpoints e ao Endpoints Viewer. Agora, o visualizador também reconhece e coleta endpoints para roteamento mínimo de API ASP.NET Core 6 e roteamento baseado em convenções. Isso significa que você pode explorar e navegar até esses endpoints e usar a complementação de código inteligente, além dos recursos que já estavam disponíveis.

Melhorias para o Vue

Melhorias para o Vue

O Rider 2022.1 vem com várias melhorias para o Vue 3. Se você definir componentes como globais, o IDE agora os reconhecerá em seus arquivos .vue. O Rider também oferece suporte adequado à sintaxe createApp. Ele corresponderá corretamente as aplicações criadas usando createApp com seus elementos relacionados. Esta versão também inclui suporte para Nuxt 3, uma nova versão de um popular framework Vue.

Suporte para Unity

O fantástico suporte do Rider para Unity continua em 2022.1, com alguns novos recursos, algumas correções e melhorias de desempenho e muito trabalho nos bastidores.

Também estamos anunciando o RiderFlow, uma nova ferramenta de cenário para Unity. Trata-se de um plug-in gratuito para o editor Unity, projetado para ajudar designers de nível, artistas, programadores e o restante da equipe criativa a criar e gerenciar cenas com facilidade. Navegue rapidamente, encontre objetos e ativos de jogo, realce visualmente os usos de ativos em uma cena e até mesmo refatore sua cena para substituir os objetos nela de maneira rápida e fácil. Saiba mais na página do RiderFlow.

O Rider agora atualizará automaticamente seu arquivo .asmdef sempre que você adicionar ou remover uma referência a um projeto. Se você usar um tipo de outro projeto, o Rider adicionará a referência ao arquivo .asmdef e importará esse tipo.

O Rider agora oferece suporte a arquivos .asmref (Assembly Definition Reference), bem como a arquivos .asmdef. Você obtém realce de sintaxe, validação de esquema e complementação. Usar Ctrl+Click no nome de referência fará com que você navegue até o arquivo .asmdef referenciado, e os arquivos .asmdef serão exibidos em Find Usages.

Cada projeto recebe uma nova configuração de execução padrão para executar o editor do Unity no modo em massa, o que é perfeito para executar testes de unidade e salvar os resultados na pasta Logs.

Agora que o Unity oferece suporte a versões mais recentes do C#, o Rider expandiu seu realce de tipos Color do Unity para incluir expressões new de tipo de destino. Obtenha rapidamente uma visualização da cor que você declarou e use Alt+Enter para escolher um novo valor.

O Rider 2022.1 melhora os tempos de carregamento para projetos Unity muito grandes, especialmente com discos ou sistemas de arquivos mais lentos. Embora essas melhorias possam ser significativas para projetos grandes, elas são menos perceptíveis para projetos menores, mas todos se beneficiarão com o uso reduzido de memória durante o carregamento.

Este lançamento inclui outras correções de desempenho planejadas. Corrigimos problemas como comportamento lento ao digitar com a janela de ferramentas do Unity Explorer aberta e a lentidão ao exibir entradas de log longas na janela de ferramentas do Unity.

É claro que existem muitas outras pequenas correções e melhorias, como inspeções para ajudar você a obter a assinatura de método correta para métodos [MenuItem], uma correção para encontrar a localização da documentação instalada no Linux e uma nova notificação para garantir que o pacote Rider esteja atualizado no seu projeto. As always, the full details are listed in the changelog.

Plug-ins

Azure Toolkit para Rider

Azure Functions Core Tools específico para cada versão

O Rider determina a versão do Azure Functions Core Tools a ser usada com base na propriedade AzureFunctionsVersion do seu projeto.

Se você precisar instalar uma versão específica do Azure Functions Core Tools, poderá usar Chocolatey, Brew ou npm e apontar o Rider para o caminho correto em Preferences / Settings | Tools | Azure | Functions.

Azure Functions Core Tools gerenciado pelo Rider

Por padrão, o Rider gerencia o Azure Functions Core Tools para você. Ele baixa as ferramentas necessárias com base no seu projeto e as mantém atualizadas automaticamente.

Markdown

Markdown

Se um arquivo Markdown contém instruções com comandos que você precisa executar no seu terminal, você pode executar esses comandos diretamente do arquivo Markdown usando os ícones de execução na medianiz.

Adicionamos novas opções à barra de ferramentas flutuante que aparecerá na seleção de texto quando você editar arquivos Markdown. Usando essa barra de ferramentas, agora você pode selecionar rapidamente estilos de cabeçalho e criar listas. É possível personalizar essa barra de ferramentas com as opções necessárias. Para isso, acesse Preferences / Settings | Appearance & Behavior | Menus and Toolbars | Markdown Editor Floating Toolbar.

Markdown

Também adicionamos uma ação Copy code snippet aos blocos Markdown para que você possa copiar facilmente o conteúdo para a área de transferência.

dotCover

dotCover dotUltimate

Implementamos uma opção para marcar o código como “não pode ser coberto”. Você pode usá-la para excluir do processo de cobertura o código que não precisa ser testado e obter snapshots mais claros. To use this feature, install the JetBrains.dotCover.MSBuild NuGet package and add the comments // dotcover disable/enable around the code. Para obter mais detalhes, confira este ticket.

Suporte para VCS

Abra Preview Diff na janela de ferramentas Commit

Abra Preview Diff na janela de ferramentas Commit

Movemos o ícone Preview Diff da barra de ferramentas Commit para o menu acessível ao clicar no ícone Cog e o renomeamos como Show Diff Preview on Single Click. Aqui, você pode especificar o comportamento que deseja ver ao clicar em um arquivo na árvore Changes: basta selecionar o arquivo ou abrir uma prévia de diff.

Recurso Annotate with Git Blame atualizado

Recurso Annotate with Git Blame atualizado

Aprimoramos a funcionalidade do recurso Annotate with Git Blame para facilitar a investigação das alterações introduzidas. O Rider realça a diferença nas linhas diretamente no editor quando você passa o mouse sobre uma anotação e, quando você clica nela, o IDE abre a janela da ferramentas Git Log.

Painel Commit Details atualizado na janela de ferramentas Git

O painel Commit Details agora inclui informações sobre assinaturas GPG e status de builds. Antes, esses dados eram mostrados apenas como uma coluna no log do Git.

Git File History: nova interface do usuário sem índice

A nova interface do usuário para a janela de ferramentas Git File History agora é independente do processo de indexação. Os dados são representados com uma nova interface, mesmo que o índice Log esteja desativado.

Antes, para um arquivo com um histórico não indexado, o Rider mostrava uma exibição de histórico relativamente lenta e com recursos ausentes.

Outros

Renomear uma solução

Renomear uma solução

Todo mundo sabe que é difícil nomear. De tempos em tempos, você pode até querer alterar o nome de uma solução inteira. O Rider pode ajudar aqui. Chame o menu de contexto para o nó da solução na janela de ferramentas Solution Explorer, selecione Edit | Rename e insira o novo nome para sua solução.

Opção SDK na caixa de diálogo New Project

Opção SDK na caixa de diálogo New Project

Adicionamos a opção SDK como uma lista suspensa na caixa de diálogo New Solution/Project. Ela pode ajudar você a criar um projeto para versões mais antigas do .NET SDK depois de instalar a nova.

Ação Run Static Method

Ação Run Static Method

A ação Run Static Method funciona para projetos que têm como alvos o .NET e o .NET Core. Você pode executar qualquer método estático diretamente do editor de código clicando no triângulo verde “run” na margem da medianiz.

Roslyn

Roslyn

Introduzimos várias melhorias para nosso suporte a analisadores Roslyn e geradores de fonte:

  • O Rider oferece suporte a arquivos .globalconfig para configurar regras de análise de código de analisadores Roslyn.
  • O Rider agora passa a versão de linguagem correta para os analisadores Roslyn.
  • Melhoramos o processo de carregamento e lançamento de geradores e analisadores de fonte. Não há necessidade de reiniciar o IDE para resolver o código gerado a partir dos geradores de fonte.
Limpeza e formatação de código

Limpeza e formatação de código

Reorganizamos todos os itens no menu Alt+Enter relacionados à limpeza e à formatação de código. As opções Format selection, Cleanup selection e Apply syntax style foram combinadas em um item Reformat and Cleanup para fornecer um único ponto de entrada.

Além dessas alterações, as configurações de estilo de sintaxe agora estão disponíveis nas ações Configure code style e Autodetect code style settings. O painel Preview code style também mostra alterações no estilo de sintaxe.

Suporte para NuGet

Atualizamos o seletor de ícone de pacote na página de propriedades do projeto NuGet. Ele agora usa novos elementos em vez de obsoletos.

Melhor suporte para o atributo DebuggerDisplay

  • Ao apresentar um tipo derivado, o depurador leva em consideração o atributo DebuggerDisplay mesmo que ele seja aplicado ao tipo base.
  • O depurador oferece suporte a especificação do atributo DebuggerDisplay no nível do assembly.