Novidades no Rider

O Rider 2020.2 oferece alguns recursos muito solicitados, como o Localization Manager e o suporte para Shader em nossa integração com o Unity. Reformulamos completamente o Executor de testes de unidade e a API do depurador para torná-los mais rápidos, mais poderosos e mais estáveis. Esse lançamento também inclui melhor suporte para C#, pontos de interrupção de dados e suporte completo para solicitações pull do GitHub.

Depurador

Nova API de depurador

Nova API de depurador

O novo lançamento vem com a nova API de depurador, que foi amplamente reescrita. Isso não é perceptível na interface do usuário, mas permite que mais recursos sejam adicionados e permite que os plug-ins entrem no processo de depuração como nunca antes. Isso inclui cálculos de valores super vagarosos aprimorados com melhor interrupção e representações de valores personalizados. A única coisa notável para quem vê de fora é que as janelas de ferramentas de depurador mostram os ícones corretos para todas as variáveis.

Pontos de interrupção de dados

Pontos de interrupção de dados Apenas Windows

Pontos de interrupção de dados são úteis quando você precisa se concentrar nas propriedades de um objeto específico. Você normalmente os usa em cenários em que sabe o que será alterado, mas não tem ideia de onde a alteração ocorre na sua base de código. Isso estará acessível na janela de ferramentas Watch e funciona até mesmo com elementos da array. Devido a limitações atuais da plataforma, isso provavelmente apenas será possível para o .NET Core 3+ no Windows.

Saiba mais

Pin-To-Frame

Pin-To-Frame

No Rider 2020.2, adicionamos Pin-To-Frame, que permite afixar valores entre quadros. Você pode afixar parâmetros para uma função e vê-los na lista de quadros de pilha. Ao depurar funções recursivas, ele permite observar o estado dos valores em diferentes iterações.

Saiba mais

Localization Manager

O Localization Manager agora está disponível no Rider para ajudá-lo a localizar seu aplicativo ou site .NET. Você pode acessá-lo usando o menu Tools ou clicando duas vezes em um arquivo .resx.

Ele permite visualizar tudo o que está contido em todos os arquivos .resx do seu projeto, ou uma seleção especificada de arquivos, em uma única grade.

Você pode encontrar facilmente todos os recursos que não possuem valores traduzidos ou que simplesmente não são usados.

Você pode adicionar, editar, renomear, procurar, localizar usos e excluir com segurança qualquer recurso localizado.

Você pode adicionar facilmente uma nova cultura ao seu aplicativo usando a lista predefinida de culturas na complementação ou pode ocultar localidades desnecessárias no momento.

Você pode exportar toda a grade para um arquivo no formato CSV para compartilhar com os tradutores e importar a versão final de volta para o Localization Manager.

Você pode adicionar e editar comentários para qualquer entidade a partir de arquivos de recursos diretamente na grade e também pode exportar e importar esses comentários.

Você pode visualizar toda a estrutura de arquivos .resx na sua solução com diferentes agrupamentos.

Desenvolvimento de jogos

Unity

Suporte para Shader

O Rider 2020.2 adiciona o suporte muito solicitado aos shaders Cg e HLSL! Isso inclui realce de sintaxe, complementação de código, realce de erros semânticos, acesso a definições, localização de usos, refatorações e muito mais.

O Rider entende completamente a estrutura dos arquivos shaders, incluindo macros, e pode navegar até as definições de macro ou desenrolá-las diretamente no código. Os arquivos incluídos são descobertos e analisados e a combinação Ctrl+clique em um arquivo incluído levará você diretamente até esse arquivo.

Pontos de pausa

Pontos de pausa

Apresentando um novo tipo de ponto de interrupção! Defina um ponto de interrupção no código, converta-o em um ponto de pausa e, quando o depurador o atingir, o Unity Editor mudará imediatamente para o modo de pausa, permitindo que você use o Inspector para visualizar o estado do seu jogo.

Isso se torna uma ferramenta ainda mais poderosa quando usada em combinação com pontos de interrupção condicionais e dependentes. Leia mais nesta postagem de blog.

Análise de Burst

Análise de Burst

O código habilitado para Burst pode melhorar muito o desempenho do seu aplicativo Unity, mas impõe restrições sobre o que seu código pode fazer.

O Rider 2020.2 adiciona uma análise inteligente para todo o código chamado dentro de um contexto de Burst e realçará qualquer uso incorreto de código, como isolamento, uso de foreach ou try/catch, leitura/gravação em campos estáticos e muito mais.

Depuração de USB para dispositivos Apple

Depuração de USB para dispositivos Apple

O Rider já possui excelente suporte para depuração de players pela rede, incluindo players autônomos para desktop, celulares e consoles autônomos.

O Rider 2020.2 introduz a depuração baseada em USB para dispositivos Apple (a depuração USB para dispositivos Android está planejada para uma versão futura).

Correções rápidas em massa

Correções rápidas em massa

Todas as correções rápidas que podem ser executadas em arquivos, projetos e soluções inteiras foram atualizadas para poderem fazer isso.

Remova atributos redundantes do Unity, substitua comparações de literais de string por CompareTag, melhore o desempenho combinando a criação de objetos com a configuração da transformação principal e muito mais – tudo isso no seu projeto Unity, com um único clique.

Extensões de valor do depurador

Extensões de valor do depurador

O depurador do Rider mostrará valores contextuais extras para projetos Unity. Obtenha acesso fácil à cena ativa, aos objetos de jogos secundários e a todos os componentes conectados.

O Rider também exibe informações resumidas aprimoradas para certos tipos, como Ângulos de Euler para Quaternion, valores de precisão total para vetores, o estado de comportamento habilitado e muito mais.

Suporte integrado ao UnityYamlMerge

Suporte integrado ao UnityYamlMerge

Rider will automatically use Unity’s Smart Merge tool to merge asset files when performing integrated version control operations.

Mais recursos

  • Redução significativa no uso de memória e taxa de transferência aprimorada ao indexar ativos baseados em texto para o uso de código em cenas, prefabs e outros ativos.
  • Termos comuns da API do Unity foram adicionados como um dicionário personalizado ao corretor ortográfico do Rider.
  • A limpeza de código agora reconhece os tipos Unity e não reorganiza mais campos serializados, o que é importante ao mostrar esses campos no Unity Inspector.
  • More minor features and fixes.

Rider for Unreal Engine Demonstração antecipada

Rider para Unreal Engine

Interessado no desenvolvimento de jogos com o Unreal Engine? No caminho para transformar o Rider em um IDE de desenvolvimento de jogos universal, multifuncional e independente, introduzimos suporte inicial para o desenvolvimento em Unreal Engine no Rider:

  • Suporte nativo para C++ alimentado pelo motor ReSharper C++.
  • Desempenho otimizado para projetos Unreal Engine.
  • Integração com as informações do Unreal Editor e Blueprints no Rider Editor.
  • Compreensão da reflexão de UE e RPC e aplicação de regras de nomeação UE.
  • Obtenção de dialetos HLSL e C#, JSON e uproject/uplugin.

A versão de acesso antecipado é gratuita. Basta registrar-se para participar.

Análise de código

A análise de código de nulidade agora reconhece mais casos e pode rastrear a nulidade incorreta através da desconstrução e do ciclo foreach. Ela também fornece uma correção rápida correspondente.

A análise de código agora leva em conta os atributos JetBrains.Annotations (ambos NotNull e CanBeNull) para a API, mesmo no código em que tipos de referência anuláveis estão desabilitados (#nullable disable).

Ações de contexto para converter "foreach em LINQ" e "LINQ em código" também estarão disponíveis em IAsyncEnumerable‹T› se você tiver o pacote NuGet System.Linq.Async instalado para seu projeto.

Agora, é possível gerar facilmente implementações de IEqualityComparer‹T› e IComparer‹T› com as correções rápidas apropriadas.

A Análise de código agora leva em consideração as anotações do compilador (como AllowNull e DisallowNull) ao verificar a nulidade de membros implementados ou substituídos.

Existem novas inspeções e correções rápidas para tornar variáveis e tipos de retorno "não anuláveis" caso elas nunca tenham retido ou retornado valores anuláveis.

A análise de código agora pode seguir as regras dotnet_diagnostic do arquivo .editorconfig. Especifique a gravidade das inspeções no arquivo .editorconfig, por exemplo, dotnet_diagnostic.CS1058.severity = hint, e o Rider exibirá as inspeções adequadamente.

O suporte para o recurso de implementações padrão em interfaces foi aprimorado neste lançamento. A medianiz à esquerda no editor de código mostra que um método é implementado ou substituído, e nossas refatorações e navegação estão cientes desse recurso da linguagem C#.

As dicas de inserção agora estão disponíveis no código XAML. Fornecemos dicas para nomes de propriedades de marcação e DataContext, bem como para margens e preenchimentos, o que é útil se você não deseja memorizar suas ordens.

A correção rápida Suppress nullable warning with ! pode ser desativada para uma solução por meio do menu Alt+Enter.

Testes de unidade

Reconstruímos nosso Executor de testes de unidade para que o .NET Framework e o .NET Core tenham o mesmo executor nos dois tempos de execução que são rodam fora do processo do Visual Studio. Ele nos ajuda a resolver vários problemas com a descoberta, execução e depuração de testes de unidade, além de fornecer controle total sobre hierarquias de teste de unidade para testes do .NET Core.

O novo executor de testes de unidade apresenta as seguintes melhorias importantes:

  • Suporte interno para frameworks de teste de unidade MSFakes for NUnit, xUnit e MSTest v2.
  • Suporte interno para TypeMock Isolator para NUnit, xUnit e MSTest v2.
  • Agora, testes do MSTest v2 podem ser executados sem o Visual Studio instalado.

O Rider agora oferece suporte ao atributo DisplayName nos testes do .NET Core para estruturas xUnit e NUnit.

Você pode selecionar vários status de teste de unidade simultaneamente para filtrá-los na árvore de testes de unidade. Habilite ou desabilite vários status segurando a tecla Ctrl enquanto clica neles.

Existem dois contadores diferentes para cada status quando um filtro de pesquisa ou framework de destino é aplicado para mostrar o número geral de testes de unidade e o número de testes que correspondem aos critérios de filtro.

Adicionamos suporte para códigos de escape ANSI na janela Output, para que você possa colorir a saída do teste de unidade se desejar.

Há uma nova ação no menu Alt+Enter para abrir a caixa de diálogo Settings se você receber o status "Visual studio installation folder is not set" para o seu teste de unidade MSTest.

Controle de versão

Solicitações de extração do GitHub

O suporte aprimorado para solicitações pull do GitHub finalmente chegou! Você poderá procurar, atribuir, gerenciar e até mesmo mesclar solicitações pull, exibir a linha do tempo e comentários embutidos, enviar comentários e revisões e aceitar alterações.

O novo suporte inclui:

  • Um novo layout para o visualizador de solicitações pull.
  • Visualização dos resultados de verificações pré-submissão na Linha do tempo.
  • Suporte para revisões.
  • Interação com comentários.
  • Mesclagem de solicitações pull de dentro do IDE.

Para mais detalhes sobre esse novo recurso, confira este post de blog.

Outros recursos para VCS

Além do suporte completo à solicitações pull do GitHub, os seguintes novos recursos estão disponíveis para sistemas de controle de versão:

  • Suporte para o Git instalado no WSL2.
  • Melhoramos a maneira como o resultado da ação Compare branches é apresentado.
  • Agora, você pode selecionar um número de submissões locais na guia Log da janela de ferramentas Git e fazer squash em uma única submissão. Essa ação está disponível no menu de contexto do botão direito do mouse.

NuGet

Você pode usar a janela de ferramentas NuGet para ver todos os pacotes transitivos de uma solução ou projeto na nova seção Implicitly Installed Packages.

Passar o mouse sobre um pacote implícito revela uma dica de ferramenta que contém informações sobre a versão do pacote implícito e o pacote de referência. Se o pacote for referenciado em várias versões, todas serão mostradas.

Adicionamos um novo menu pop-up de contexto que pode ser chamado clicando com o botão direito do mouse ou pressionando Alt+Enter em um pacote NuGet. A partir daqui, você pode acessar rapidamente todas as ações relevantes para um único pacote NuGet, como atualizar ou remover o pacote, abri-lo no Assembly Explorer para examinar a API, revelá-lo no explorador do sistema de arquivos, navegar até a entrada NuGet.org relacionada ou localizar o código dependente.

Há também uma nova ação Quick NuGet Documentation para exibir os caminhos de referência implícitos para um pacote.

A caixa de pesquisa de pacotes também recebeu uma atualização. Você pode clicar no ícone da lupa ou usar Alt+Down Arrow para abrir o histórico de pesquisas recentes em pacotes.

Agora, também podemos editar valores para duas das propriedades alteradas com mais frequência – globalPackagesFolder e repositoryPath.

Na guia Feeds, agora podemos ver imediatamente se um caminho de feed é inválido, pois o caminho será realçado com um retângulo vermelho.

Uma mensagem de aviso também será mostrada na lista de pesquisa se procurarmos um pacote e ele não for encontrado em nenhum dos feeds.

O novo aviso no painel de detalhes é uma indicação visual de quais pacotes ainda estão em manutenção ou foram descontinuados.

Suporte para F#

Refatorações

A refatoração Introduce Variable está agora disponível para expressões. Quando invocado, mostra as subexpressões adequadas (a menos que uma parte específica do código seja selecionada) e oferece a substituição de subexpressões semelhantes. Também é inteligente em nomear a nova variável e sugere um nome significativo de acordo com o tipo e o contexto.

Rename agora funciona com caracteres curinga sublinhados. Sempre que você precisar transformar um padrão de curinga em uma variável nomeada, poderá chamar a refatoração em vez de fazê-lo manualmente. Também leva em consideração o tipo e o contexto ao sugerir nomes.

Correções rápidas e ações de contexto

O Import Type foi significativamente aprimorado. Agora, ele funciona em mais casos e mantém a contagem de parâmetros em mente ao sugerir um tipo. O Rider agora também pode sugerir a referência a um módulo ou outro projeto da sua solução e importar o tipo a partir dele.

Outros recursos para VCS

Várias novas correções rápidas foram adicionadas também: adicionar parênteses a uma aplicação de uma função na lista de parâmetros, adicionar o atributo Extension a um tipo ou módulo de contenção, corrigir erros de sintaxe, converter let em use e muitos outros.

Analisadores

Analisadores

Implementamos um analisador rápido de qualificadores redundantes e uma correção rápida correspondente para remover as redundâncias.

Editor

Agora, há mais opções para realçar vários símbolos de maneira diferente. Além disso, as abreviações de tipos são realçadas como os tipos que abreviam e as funções podem ser realçadas como métodos. Both are external contributions, and we thank Igor Bagdamyan for them.

O Rider agora tem dicas de tipo para expressões em cadeias |>. Elas ajudam você a acompanhar o que está acontecendo sem ter que seguir toda a cadeia na sua mente. This too is an external contribution, which we’d like to thank Saul Rennison for.

As referências de cores agora estão realçadas no código, tornando-as mais visíveis.

Finally, we now have an F# Compiler Service monitor – thanks again to Saul. Sempre que o FCS estiver ocupado, um indicador será exibido. Ela é principalmente uma ferramenta de diagnóstico. Ela ajuda o desenvolvedor a entender o motivo pelo qual o IDE está pensando e, no caso de o comportamento parecer suspeito, pode ser relatado à equipe do Rider para análise.

To learn more about updates in F# support, please take a look at the release notes on GitHub.

Suporte para x:Bind

Temos boas notícias para desenvolvedores UWP – o suporte para associações compiladas com x:Bind está finalmente aqui!

O Rider resolve o código x:Bind corretamente e oferece várias inspeções e correções rápidas correspondentes. Ele avisa sobre a falta de setters de propriedades, atributos BindBack e quando há colisões de sobrecarga. Além disso, há um conjunto de correções rápidas Create from Usage para gerar um campo, propriedade ou método adequado dentro do C# code-behind.

Há complementação de código e informações de parâmetros para os atributos propertyPath, BindBack e UpdateSourceTrigger dentro de uma expressão x:Bind.

As refatorações Change Signature e Safe Delete agora reconhecem o uso do método no código XAML e o atualizam de acordo. Além disso, as refatorações Make Static/Const e Encapsulate Field funcionam diretamente do código XAML e atualizarão os usos XAML corretamente se você as chamar do C# code-behind.

O reconhecimento de nulidade é integrado à análise de código x:Bind. O Rider agora mostra inspeções relacionadas a nulos diretamente no código XAML quando há atributos CanBeNull e NotNull no código C#, por exemplo, “Possible System.NullReferenceException e “Possible null assignment to non-nullable entity” para argumentos em um método usado em um propertyPath.

Outros recursos do Rider, como Find Usages e Go to Declaration, também estão cientes de associações x:Bind.

Plug-ins

dotTrace

dotTrace dotUltimate

O plug-in dotTrace pode criar um perfil da parte nativa de aplicações Mono/Unity no Windows. Inicie uma sessão com a opção Enable native profiling, e você verá pilhas de chamadas nativas e gerenciadas em snapshots de desempenho.

Dynamic Program Analysis

Dynamic Program Analysis

Agora, você pode filtrar por processo/módulo/classe/ método em Settings/Preferences | Build, Execution, Deployment | Dynamic Program Analysis | Filtering para restringir o escopo do recurso Análise dinâmica de programas.

  • Se precisar analisar apenas alguns métodos/classes/etc específicos, adicione-os à lista Analyze code only in.
  • Se precisar ocultar algum método/classe/etc. específico da análise, adicione-o à lista Do not analyze code in.

dotCover dotUltimate

A nova versão traz vários recursos úteis para o plug-in dotCover:

  • A janela Unit Tests Coverage agora permite exportar relatórios de cobertura.
  • A janela Unit Tests Coverage agora possui um recurso de pesquisa rápida.
  • Agora, você pode navegar de um símbolo no código para esse símbolo na árvore de cobertura (Navigate to | Coverage Tree ou usando o ícone Navigate from Editor na barra da janela de ferramentas Coverage).

Azure Toolkit para Rider

Depois de instalar o Azurite storage emulator usando o npm (npm install -g azurite), um nó do Azurite será adicionado à janela de ferramentas Services. A partir daqui, você pode iniciar, parar e limpar o emulador de armazenamento.

Ao usar gatilhos de timer em Azure Functions, você deve inserir uma expressão NCrontab válida que defina quando a função será executada. O Azure Toolkit for Rider agora ajuda a editar o crontab, fornecendo complementação de código com várias expressões de exemplo a partir das quais você pode começar a trabalhar.

O Rider agora valida se uma expressão NCrontab é válida ou não e fornece informações extras sobre o que pode estar errado.

Plug-in Markdown

Plug-in Markdown

Diga Olá para o suporte ao Markdown no Rider! O Rider 2020.2 vem com o plug-in Markdown. Ele reconhece arquivos Markdown na sua solução, fornece um editor dedicado para eles e mostra o HTML renderizado em uma visualização ao vivo.

Suporte para Godot

Suporte para Godot

As configurações de execução do Godot foram reformuladas. Você pode executar, depurar e executar com definição de perfil as configurações de execução Player e Editor. Além disso, você pode editar a linha de parâmetros da linha de comando que é usada para executar o player e o editor.

Além disso, agora você pode iniciar a execução ou a depuração de cenas individuais diretamente no menu de contexto na exibição the Solution Explorer.

Suporte para bancos de dados

Editor separado para valores de células

Editor separado para valores de células

Agora, se você tiver um valor enorme na sua célula, poderá visualizá-lo e editá-lo em um painel separado. Também é possível alternar o modo de quebra automática de linha usando a barra de ferramentas à direita. Use todo o poder do editor de código do Rider para os seus dados!

Uma nova interface do usuário para valores booleanos

Uma nova interface do usuário para valores booleanos

Agora, existe uma maneira mais amigável de visualizar e editar valores booleanos. Agora, os valores "True" estão indicados com um marcador para diferenciá-los de todos os outros.

Visualização DML no editor de dados

Começando com esta versão, você pode revisar a consulta que representa suas alterações no editor de dados. ,Agora existe um ícone DML que ficará ativo se houver alterações pendentes. Ao clicar no ícone, você verá uma caixa de diálogo com a visualização do DML. Essa consulta não é necessariamente o SQL exato que será executado para modificar seus dados, pois o Rider usa um driver JDBC para atualizar tabelas, mas, na maioria das vezes, será o mesmo.

Confira Novidades no DataGrip para todas as melhorias no banco de dados que também estão disponíveis no Rider 2020.2.

Desenvolvimento Web

Economize tempo com novos recursos para JavaScript

Economize tempo com novos recursos para JavaScript

Novas intenções inteligentes (Alt+Enter) ajudarão você a executar algumas ações mais rapidamente. Por exemplo, agora, você pode converter rapidamente um loop for com um índice numérico em um método de array forEach. Examinar os comentários da documentação nos arquivos JavaScript e TypeScript também ficou mais fácil, pois agora você pode renderizá-los diretamente no editor, minimizando todas as distrações.

Transforme o Prettier no formatador padrão em seus projetos JavaScript

Transforme o Prettier no formatador padrão em seus projetos JavaScript

Deseja usar o Prettier em vez do formatador incorporado para organizar seu código? Com essa atualização, isso ficou ainda mais fácil do que antes. Instale o plug-in do JetBrains Marketplace e, em Settings/Preferences | Plugins page, marque a nova caixa de seleção "On code reformat", e o IDE usará o Prettier sempre que você reformatar seus arquivos .js, .ts, .jsx e .tsx. Outros tipos de arquivos também podem ser facilmente adicionados.

Aproveite o melhor suporte da categoria para o Vue

Aproveite o melhor suporte da categoria para o Vue

No ano passado, adicionamos suporte ao Nuxt.js, configurações de estilo de código específicas do Vue, melhorias no Vue em projetos TypeScript e muitas outras atualizações. O suporte ao Vue no Rider nunca foi tão avançado!

Confira Novidades no WebStorm para conhecer todas as melhorias no desenvolvimento Web que também estão disponíveis no Rider 2020.2.

Refatorações

Neste lançamento, a caixa de diálogo Conflicts foi reprojetada como uma etapa separada na interface Refactorings. A lista simples de antes foi substituída por uma árvore agrupada por arquivo. Para retornar à lista simples, clique no ícone Flatten na barra de ferramentas direita.

Ao chamar refatorações Introduce parameter ou Introduce field em uma expressão, o Rider pergunta em qual parte da expressão a refatoração deve ser aplicada.

Outras atualizações

Xamarin

Existem algumas atualizações notáveis:

  • Modelos de arquivo estão disponíveis em projetos Xamarin para macOS e iOS.
  • Melhoramos a sincronização do XCode - quando não há um arquivo ".Designer.cs", o Rider agora gera um em vez de exibir um erro.

Por último, mas não menos importante

  • Nova apresentação dos resultados da pesquisa em Search Everywhere.
  • Agora, oferecemos suporte para anexar o depurador às configurações de hospedagem em tempo de execução do .NET Core e executá-las com depuração.
  • Configurações de execução são geradas para todos os projetos executáveis.
  • Agora, há suporte para ProjectReferences em projetos de sites.