O Rider 2024.1 oferece um novo recurso para monitorar o desempenho do seu aplicativo e obter métricas importantes. Também oferece linhas fixas, para você compreender melhor onde está no seu código e navegar mais rapidamente através dele, e um diálogo New Project atualizado, para uma configuração mais rápida e fácil do projeto. A versão 2024.1 também ajuda na depuração, ao fornecer um visualizador de coleções e mostrar o tempo das etapas entre dois pontos de interrupção. Os desenvolvedores de jogos podem desfrutar de um novo conjunto de recursos para o Odin Inspector, o popular ativo do Unity, e do suporte ao framework Slate UI, do Unreal Engine.
O Rider 2024.1 traz a nova janela de ferramentas Monitoring, que permite a você monitorar o desempenho do seu aplicativo .NET e obter métricas importantes no plano de fundo durante a execução ou depuração.
Introduzimos linhas fixas no editor, para simplificar o trabalho com arquivos grandes e a exploração de novas bases de código. Esse recurso mantém os principais elementos estruturais, como inícios de classes ou métodos, fixados na parte superior do editor quando você rola o código. Assim, os escopos ficam sempre à vista e você pode navegar imediatamente pelo código clicando em uma dessas linhas fixas.
Inspecione coleções, tais como arrays, listas, dicionários e outros tipos enumeráveis, para compreender melhor o estado dos dados do seu programa durante a depuração e identificar quaisquer problemas em potencial relacionados à manipulação dos dados.
Reformulamos completamente o diálogo New Project, para tornar os novos projetos fáceis de configurar. O diálogo oferece um suporte abrangente a configurações de projeto e parâmetros de modelos específicos do .NET, e agora você pode instalar o SDK-alvo e a carga de trabalho apropriada da MAUI diretamente a partir do diálogo.
Reformulamos completamente o diálogo New Project, para reduzir a carga cognitiva durante a configuração de novos projetos. Você pode esperar o seguinte nesse diálogo atualizado:
Antes, já era possível dar zoom para ampliar ou diminuir o IDE inteiro, redimensionando todos os elementos da interface de usuário ao mesmo tempo. Porém, o redimensionamento original estava limitado à faixa entre 100% e 200%. Agora adicionamos a capacidade de diminuir a escala do IDE para 70%, dando a você mais flexibilidade quanto ao tamanho de tudo.
Esta versão traz uma janela de ferramentas Terminal reformulada. Ela ganhou aperfeiçoamentos tanto visuais quanto funcionais, projetados para tornar as tarefas baseadas em terminal mais convenientes e simples. Esta atualização melhora o visual da ferramenta e amplia seu conjunto de recursos.
Você pode ativar o novo terminal em Settings/Preferences | Tools | Terminal | Enable New Terminal.
Para mais informações sobre o terminal reformulado, confira esta postagem no blog do IntelliJ IDEA.
Você agora receberá sugestões para converter mais construções do seu código-fonte em expressões de coleção do C# 12, como um array vazio ou a declaração e inicialização de ImmutableArray
.
Adicionamos a nova inspeção Possible 'System.InvalidOperationException: Collection was modified', que avisa quando uma coleção for modificada ao ser iterada dentro de loops foreach
, já que essa modificação pode levar a uma exceção em tempo de execução. Essa análise leva em consideração casos nos quais há uma saída do loop depois da modificação da coleção. Esses casos não provocarão o alerta. Esta inspeção vem com uma correção rápida correspondente, para ajudar você a resolver esse problema instantaneamente.
Generate | Formatting Members permite que você gere código padronizado que substitui o método ToString()
e retorna uma string que faz sentido para os seus tipos. A partir da versão 2024.1, este recurso oferece suporte a mais tipos, tais como ISpanFormattable
, IUtf8SpanFormattable
e IFormattable
.
[MustDisposeResource]
Melhoria nas anotações: agora a análise do código em C# garante que os recursos retornados por métodos assíncronos, incluindo os envolvidos por Task<IDisposable>
e ValueTask<IDisposable>
, sejam descartados corretamente, ajudando a evitar o descarte acidental da própria tarefa. .ConfigureAwait(...)
, .AsTask()
ou .Result
. Estas são algumas das melhorias que fizemos na refatoração Change Signature:
Deconstruct
. Você pode adicionar, remover, reorganizar e renomear parâmetros e essas alterações se refletirão tanto na declaração quanto nos usos do método. List<>
, por exemplo, você poderá usar a complementação de código para selecionar facilmente o tipo desejado, como int
. System.Collections.Generic.List<System.Int16>
no diálogo Change Signature, ele será abreviado automaticamente para List<short>
no código resultante. in
e ref readonly
e tipos record
.Nesta versão, a refatoração Make Static tem suporte a parâmetros de construtores primários. Eles aparecem na lista Introduce parameters e têm um ícone separado para ajudar a distingui-los facilmente. Esta refatoração também está disponível para funções locais.
Estamos refinando ativamente o modo de alta utilização de recursos na análise de toda a solução. Isso reduzirá significativamente o tempo gasto na análise, usando o paralelismo de CPUs de forma mais eficiente. Aperfeiçoamos o perfil de alocação de memória das atividades de análise de código, para minimizar o tempo gasto na coleta de lixo. Esse processo de refinamento ainda está em andamento, mas gostaríamos que você ativasse esse modo e nos desse o feedback sobre a sua experiência.
protobuf-net
Agora a análise de código oferece suporte ao atributo ProtoContract
e ao enum ImplicitFields
, da biblioteca protobuf-net
. Ambos podem ser usados para marcar membros implicitamente usados para serialização. Como resultado, esses membros não são mais sinalizados com alertas de unused members
Agora a geração de overrides está disponível em expressões de objetos, através de novas correções rápidas para membros faltando, complementação de código e a refatoração Generate.
Agora você também pode ver os "cases" em uniões ao pesquisar pelos usos delas. Isso facilita ver como as instâncias de tipos são criadas e correspondidas por padrões.
Adicionamos o modelo Postfix new
, que cria instâncias de tipos de registros e expressões de objetos para classes e interfaces.
Foi implementado o suporte a linhas fixas para F#, tornando mais fácil visualizar o contexto ao trabalhar com tipos e funções mais longos.
Há outras novas correções rápidas e ações de contexto com suporte para F#. Você pode ler a respeito dessas e outras alterações nas notas completas de lançamento no GitHub.
Seguindo os passos do ReSharper, o Rider também ganhou um verificador ortográfico e gramatical atualizado. O novo verificador ortográfico tem suporte a mais de 20 idiomas e detecta erros de linguagem natural dentro das linguagens de programação com suporte no Rider (C#, C++, VB.NET), em linguagens de marcação (HTML, XML, XAML) e comentários.
O visualizador de coleções do Rider 2024.1 fornece representações gráficas de coleções (arrays, listas, dicionários e outros tipos enumeráveis), permitindo que você expanda e comprima elementos, visualize valores individuais e navegue facilmente pela estrutura de dados. Ele é útil para compreender o estado dos dados do seu programa durante a depuração e diagnosticar problemas relacionados à coleta, manipulação ou processamento de dados.
Ao depurar, a capacidade de avaliar o tempo que o depurador leva para executar o código entre dois pontos de interrupção pode ser extremamente valiosa. Se você achar que o tempo dessas etapas está longo demais, isso pode indicar problemas de desempenho no seu código. Agora, ao depurar um aplicativo com o Rider, você verá uma dica in-line mostrando o tempo decorrido entre o último ponto de interrupção e o atual.
A partir desta atualização, o Rider permite que você crie vários pontos de interrupção em uma mesma linha de código, se ela contiver várias declarações. Você pode criar os pontos de interrupção usando as dicas in-line correspondentes ou através de um atalho de teclado (Ctrl + F8).
Na versão 2024.1, estamos implementando nossa opção Skip to cursor da mesma forma como ela funciona no IntelliJ IDEA. A nova opção de inserção Run to Cursor fornece uma maneira rápida de navegar até uma linha específica do código durante a depuração. Depois que seu programa é suspenso, você pode passar o mouse sobre a linha de código na qual deseja continuar a execução. Em seguida, pode usar o pop-up Run to Cursor para executar seu código até chegar à linha onde o cursor está posicionado.
Agora o Hot Reload está disponível para executar e depurar aplicativos em WebAssembly (WASM) no Blazor. Agora o Hot Reload funciona para arquivos .cs
, .razor
e .css
(incluindo arquivos .razor.css
com escopo).
Este recurso fica habilitado como padrão. Você pode configurá-lo em Settings/Preferences | Build, Execution, Deployment | Hot Reload.
Dumps de processos são cruciais na depuração, porque eles permitem que você examine o estado do programa no momento de um erro, mesmo se o problema não puder ser facilmente reproduzido. Antes, o Rider só podia processar core dumps de C++. Agora o IDE também permite que você importe dumps de processos de .NET.
Para importar um dump de processo, vá até Run | Debug Core Dump ou simplesmente arraste e solte o arquivo do dump no editor.
Adicionamos um novo botão Explain with AI logo ao lado de uma mensagem de exceção ou de erro enviada por causa de uma falha em um teste de unidade ou build, ou durante uma sessão de depuração.
Ao renomear uma variável local, você receberá sugestões de nomes por IA no pop-up de complementação de código.
Observe que na versão 2024.1, o AI Assistant não vem mais incluído e agora está disponível como um plug-in à parte. Essa mudança foi provocada pela necessidade de oferecer mais flexibilidade na tomada de decisões quanto ao uso de tecnologias que utilizam IA, dando a você mais controle sobre as suas preferências e as exigências dos seus ambientes de trabalho. O AI Assistant ainda requer uma assinatura ativa do JetBrains AI.
Estas são algumas melhorias notáveis no suporte a C++:
O suporte a C++ no Rider é fornecido pelo ReSharper C++. Confira as Novidades do ReSharper C++ 2024.1 para mais detalhes.
Estamos empolgados de adicionar o suporte para Blueprint na pilha de chamadas do depurador. Agora, em vez de mostrar um endereço de memória anônimo na pilha de chamadas, o Rider mostra informações sobre a chamada ao Blueprint, entremeadas com o seu código existente em C++. Assegure-se de atualizar o seu plug-in do RiderLink para a última versão!
Esta versão adiciona o suporte ao framework Slate UI do Unreal Engine, ensinando ao Rider como usar os comandos Go to Definition e Find Usages, além da refatoração Rename, usada para renomear os símbolos declarados pelas macros do Slate.
Agora o Rider formata corretamente código na DSL do Slate, seja quando invocado diretamente como uma ação de reformatação ou durante a digitação.
A integração inteligente do Rider com o recurso Blueprint continua, com o suporte à adição de core redirects ao renomear instâncias UENUM
, além da complementação de caminhos de ativos nos nomes de recursos em código em C++.
Continuamos a trabalhar no suporte ao Perforce, com algumas melhorias úteis de qualidade de vida que facilitam o login quando a sua sessão vence e a colocação de arquivos na lista de alterações correta durante refatorações Rename.
Também corrigimos um problema com a UnrealBuildTool que às vezes provocava uma nova build completa de um projeto que já tinha tido uma build no Visual Studio. Isso melhora muito a experiência de usar os dois IDEs. A correção está no Unreal Engine 5.4 e em todas as versões do Rider.
E não se esqueça de conferir todas as mudanças para C++ no mecanismo do ReSharper C++.
Temos o prazer de anunciar que estivemos trabalhando com nossos amigos da Sirenix para oferecer suporte ao popular ativo Odin Inspector, para o Unity. O Rider agora reconhece e realça campos e propriedades serializados pelo Odin Inspector, oferece complementação e inspeções de nomes de grupos em atributos de layout e mostra pré-visualizações da classe GUIColor
do Odin. O Rider também reconhece os atributos de faixas do Odin e usa esses valores em suas próprias análises de valores inteiros, alertando você se algum valor sair da faixa.
O Rider 2024.1 expande o suporte a palavras-chaves de shaders, introduzido na versão 2023.3. Você pode habilitar ou desabilitar diferentes palavras-chave ao editar os seus arquivos de shaders. Por sua vez, isso habilita ou desabilita o realce e a análise de código em diferentes branches do pré-processador. Esta versão adiciona o suporte a palavras-chave implícitas de shaders, diretivas de pré-processador e palavras-chave locais específicas de etapas do processamento, através do sufixo _KEYWORD_DEFINED
.
Esta versão atualiza a forma como o Rider realça a manipulação (possivelmente inesperada) pelo Unity de comparações de igualdade com null
na verificação do tempo de vida do objeto de jogo subjacente. Em vez de mostrar um alerta se uma verificação de null
em C++ evitar a verificação de tempo de vida, agora o Rider realça quando uma comparação com null
efetua a verificação.
Mergulharemos neste assunto em mais detalhes em uma futura postagem no blog.
A depuração foi incrementada, com o Rider oferecendo mais suporte específico a DOTS, como a adição de um nó-filho Entity
ao examinar uma instância de IJobEntity
no painel Watches. Os pontos de pausa também foram atualizados para funcionarem com sistemas em DOTS. O visualizador de valores de depuração de texturas recebeu algumas correções de bugs e o novo visualizador de coleções ajuda com coleções de objetos de jogo.
Também houve algumas melhorias de desempenho no parsing de ativos, correções no reconhecimento de campos serializados e inúmeras outras pequenas correções e atualizações. Você pode ler mais na lista de alterações.
Continuamos nosso suporte ao Godot, com mais atualizações no plug-in opcional que você pode instalar a partir da aba Plugins das Configurações. As alterações recentes incluem:
.gd
, .tscn
, .tres
e .godot
, e melhor realce no .gdshader
. launchSettings.json
(JetBrains/godot-support#125). @addTagHelper
e @removeTagHelper
Agora o Rider resolve referências para nomes de assemblies especificados dentro das diretivas @addTagHelper
e @removeTagHelper
nas visualizações do Razor. Como resultado, agora você pode desfrutar da complementação de código, da capacidade de localizar usos e da facilidade de navegação pelo código.
Além disso, o Rider realça quaisquer nomes não resolvidos de assemblies como alertas, para que você possa reconhecê-los facilmente nas suas visualizações do Razor.
Agora você pode gerar arquivos adicionais, como .razor.cs
, .razor.css
ou .razor.js
, ao gerar um modelo de arquivo Blazor Component.
O Rider 2024.1 apresenta várias novas correções rápidas para o React que permitem criar props e estados dinamicamente. Você pode aplicar essas soluções rápidas usando o atalho Alt+Enter.
Para mais informações sobre as melhorias no desenvolvimento para a Web, consulte esta página.
Esta versão traz atualizações ao suporte a VCS no Rider, incluindo:
Saiba mais sobre todas as alterações aqui.
Estas são algumas das melhorias mais notáveis para trabalhar com bancos de dados usando o Rider 2024.1:
GROUP BY
.Para mais informações sobre as melhorias ao trabalhar com bancos de dados, consulte esta página.
O .NET 8 SDK introduziu o .NET Aspire, uma nova abordagem para os complexos problemas de build de aplicativos distribuídos no ambiente de .NET. Respondendo a essa inovação, estamos oferecendo uma nova ferramenta integrada — o plug-in do .NET Aspire para o Rider.
Esse plug-in está disponível para o Rider 2024.1 e pode ser baixado diretamente do JetBrains Marketplace ou via Settings/Preferences | Plugins.
Saiba tudo sobre o .NET Aspire e o novo plug-in nesta postagem no blog.
Agora a ferramenta incorporada de profiling dotMemory oferece suporte ao Frozen Object Heap (FOH), um recurso introduzido inicialmente com o .NET 6 SDK como parte das melhorias de desempenho na coleta de lixo.
O FOH aloca uma área dedicada da memória para objetos imutáveis. Esses objetos não são alterados depois de serem alocados e não estão sujeitos à coleta de lixo. O suporte a essa tecnologia permite que o dotMemory execute uma análise mais detalhada da memória usada pelos objetos imutáveis no FOH, melhorando a otimização do uso da memória.
Agora os profilers incorporados dotTrace e dotMemory têm suporte a aplicativos usando MAUI e aplicativos para macOS usando .NET.
Frameworks-alvo com suporte:
net8.0-windows
, net7.0-windows
.net8.0-maccatalyst
, net7.0-maccatalyst
.net8.0-macos
, net7.0-macos
.Clique aqui para mais informações sobre os modos de profiling disponíveis.
O novo plug-in do Azure Toolkit para o Rider é um projeto de código aberto que ajuda os desenvolvedores em .NET a criarem, configurarem, testarem, gerenciarem e implantarem com facilidade aplicativos de Web altamente disponíveis e escalonáveis no Azure.
O plug-in pode ser baixado e instalado de dentro do JetBrains Rider e está disponível no JetBrains Marketplace.
Nesta versão, melhoramos o suporte ao GitHub Actions. O foco do nosso desenvolvimento é em enriquecer os seus fluxos de trabalho de CI/CD oferecendo uma maior eficiência e recursos inteligentes projetados especificamente para o GitHub Actions.
A lista de melhorias inclui:
action.yml
.Para mais informações, confira esta postagem no blog do IntelliJ IDEA.
Os diagramas de dependência de tipos, introduzidos na versão 2023.3, ganharam uma atualização funcional, com novas maneiras de configurar os diagramas:
Para descobrir mais maneiras de gerar diagramas de dependência de tipos para o seu aplicativo, veja esta postagem no blog.
Agora o Assembly Explorer dentro do Rider tem suporte ao formato de empacotamento WebCIL para WebAssemblies.
Esse suporte abrange:
.wasm
no Assembly Explorer.