Novidades no Rider

O Rider 2021.1 facilita bastante o processo de adicionar suporte para Docker a um projeto. Ele permite que você se conecte a um processo .NET diretamente da tela de boas-vindas e intervenha no processo do depurador por meio das dicas do depurador. Para desenvolvedores ASP.NET, adicionamos um sistema de andaime, incluindo o Entity Framework de Identidade e “CRUD” e análises de modelos de rota. O suporte para C# passou por uma grande atualização, desta vez principalmente para padrões e suporte de registros.

Suporte para o Docker

Adicionando suporte para Docker

Ficou ainda mais fácil adicionar suporte para Docker a um projeto no Rider: você pode gerar o Dockerfile enquanto cria um novo projeto. Basta selecionar Docker Support na caixa de diálogo New project se você escolher o ASP.NET Core Web Application, o Worker Service ou o Console Application.

Se quiser adicionar um Dockerfile a um projeto existente, use Add | Docker Support no menu de contexto de um projeto na janela de ferramentas Solution Explorer.

Dockerfile

Por padrão, o Rider pode executar Dockerfiles gerados pelo Visual Studio. Você não precisa fazer nenhuma alteração adicional no Dockerfile para torná-lo compatível com o Rider.

Suporte para C#

Mais padrões para merge

A inspeção Merge into pattern agora pode lidar com muitos mais padrões de código.

Mescle verificações de nulos com outras verificações em uma única verificação de padrão.

Reescreva verificações de expressões conditional?.Access para correspondência de padrões aninhados.

Reduza o aninhamento de instruções if mesclando as verificações.

Finalmente, você pode mesclar padrões dentro de um simples padrão de desconstrução var (a,b), expandindo-os para formas completas.

Mais suporte para C# 9.0

Adicionamos mais suporte para registros C# 9.0.

As refatorações Extract interface e Extract superclass agora funcionam com declarações de registro, assim como File Layout e os recursos que têm a ver com a documentação XML.

Criamos um conjunto de novas inspeções e ações. Redundant explicit property declaration para propriedades em declarações de registro pode ser útil ao migrar seu código para usar registros com parâmetros posicionais e declarações de propriedade implícitas. Uma correção rápida correspondente, Remove explicit property, está incluída.

Também há algo para manter as coisas organizadas: a inspeção Redundant 'record' type declaration body e a correção rápida correspondente substituirão o corpo da declaração do tipo de registro vazio por um ponto-e-vírgula.

  • Se você decidir transformar um registro em uma classe, a ação To class cuidará dos parâmetros posicionais e do construtor primário. Também há uma ação To record que funciona da maneira oposta.
  • Sempre que você precisar reescrever parâmetros posicionais e um construtor primário para propriedades comuns, construtor e um método Deconstruct() explícito, considere usar a ação de contexto To explicit constructor.
  • Agora, Find usages procura os usos do construtor primário de um registro e os usos de um método Deconstruct() implícito.

Converter uma variável temporária em valor inline.

É com grande satisfação que apresentamos uma nova inspeção, Inline temporary variable.

Às vezes, você se pega usando o mesmo valor repetidamente com nomes diferentes em seu programa. Esse código pode ser mais transparente? Com certeza, e o Rider está aqui para ajudar. Ele pode até mesmo ajudar a encontrar bugs se a variável temporária deveria ser inicializada com algum outro valor ou se ela sofrer mutação posteriormente no código.

Renomeação em tuplas

Tuplas nomeadas estão conosco desde o C# 7, mas renomear os componentes continuou sendo uma operação manual. Colocamos um fim nisso, e agora você pode chamar a refatoração.

Outras facilidades

Padrões not lógicos podem ajudar você a facilitar bastante a leitura das suas verificações de tipo. O Rider oferece o descarte da sintaxe !() em favor de um padrão not.

Para suporte ao C# 10.0, demos alguns primeiros passos e ensinamos o Rider a trabalhar com o recurso Constant string interpolation.

  • Agora, o Rider sugere o uso do operador de intervalo em vez de Slice e Substring, se isso simplificar o código.
  • A inspeção Namespace does not correspond to file location foi suprimida em arquivos com código de nível superior.
  • Há outra nova inspeção que verifica se uma propriedade automática pode ser substituída por uma propriedade calculada, junto com uma correção rápida para fazer essa substituição.

Desenvolvimento Web

Andaime para ASP.NET

Boas notícias para os desenvolvedores que trabalham com MVC do ASP.NET, API Web do ASP.NET ou páginas Razor! Adicionamos um mecanismo de andaime para projetos ASP.NET Core.

O Rider oferece suporte a áreas de andaimes, controladores, páginas Razor, visualizações e identidade, incluindo a geração do código-fonte padronizado para operações CRUD completas para usar o Entity Framework.

Ele está disponível no Windows, Linux e macOS.

Modelos de rota do ASP.NET Core

Os modelos de rota são amplamente usados em aplicativos MVC para configurar como as solicitações HTTP são correspondidas aos endpoints executáveis da aplicação. Na versão 2021.1, introduzimos suporte para modelos de rota. O Rider agora fornece complementação de código, navegação estrutural, inspeções e correções rápidas. Ele inclui:

  • Inspeções para verificar erros de sintaxe HTTP.
  • Inspeções e soluções rápidas para verificar/corrigir problemas de parâmetros de rota.
  • Inspeções para restrições de rota.

Saiba mais em Novidades no ReSharper.

Exclua arquivos antes de publicar

A opção de excluir arquivos existentes na pasta antes da publicação já está disponível. Isso pode evitar que você fique preso a dados obsoletos, por exemplo, ao mover arquivos. Esteja ciente de que o Rider limpará completamente o local de destino se essa opção estiver habilitada.

Documentação do MDN incluída

A documentação do MDN agora está incluída com o Rider. Isto ajudará a evitar problemas de conectividade com o site do MDN e fará com que a documentação no editor apareça mais rapidamente nos seus arquivos HTML, CSS e JavaScript. A documentação no editor também se tornará mais informativa (por exemplo, agora você verá detalhes sobre as versões de navegador com suporte para APIs JavaScript).

Suporte aprimorado para Stylelint

Ficou mais fácil inspecionar seu código CSS com o Stylelint. Você pode corrigir problemas com este linter em apenas alguns cliques. Passe o mouse sobre um problema no seu arquivo ou coloque o sinal de intercalação sobre ele, pressione Alt+Enter e selecione Stylelint: Fix current file.

Além disso, você pode especificar um caminho para o arquivo de configuração em Preferences / Settings | Languages & Frameworks | Style Sheets | Stylelint.

Especificidade dos seletores para CSS

Ao trabalhar com folhas de estilo, agora você pode verificar a especificidade dos seus seletores: basta passar o mouse sobre o seletor que você deseja estudar. Como alternativa, concentre-se em um seletor e pressione F1/Ctrl+Q para ver essas informações no pop-up Documentation.

Visualização HTML

Adicionamos uma nova visualização de navegador integrada que permite visualizar arquivos HTML rapidamente. Para abrir essa visualização, clique no ícone com o logotipo do Rider no widget no canto superior direito do editor.

Depurador

Conectar-se ao processo na tela de boas-vindas

Agora, você pode se conectar a um processo .NET diretamente da tela de boas-vindas. Não há necessidade de abrir uma solução com o código-fonte primeiro. Selecione a guia Attach to process na tela de boas-vindas, escolha o processo .NET necessário na lista, e o Rider começará a depurá-lo.

Dicas de depurador interativas

Agora, o Rider tem dicas de depurador interativas. As dicas no editor não só mostram o que está acontecendo, como também permitem que você intervenha e interaja com o processo do depurador por meio de dicas do depurador. Clique na dica e selecione Set Value para entrar no modo interativo. Você pode inserir dados brutos ou usar outros valores com a ajuda da complementação automática. Atalhos também são fornecidos.

Você pode habilitar dicas do depurador com a configuração Show values inline em Settings | Build, Execution, Deployment | Debugger | Data Views.

Outras atualizações do depurador

  • Adicionamos uma opção para mostrar dados brutos para um objeto quando sua representação foi alterada com um atributo DebuggerBrowsable.
  • Adicionamos uma opção para mostrar todos os membros gerados pelo compilador durante a depuração.
  • O conteúdo dos processos de depuração remota agora é mostrado corretamente no macOS.
  • Oferecemos suporte à avaliação de propriedades automáticas quando essa avaliação é impossível (por exemplo, quando o código está otimizado ou um encadeamento não está em um ponto seguro para GC).

Desenvolvimento de jogos

Unity

O Rider 2021.1 baseia-se em alguns dos vários recursos inovadores que o Rider já fornece para o Unity, proporcionando mais contexto sobre o seu projeto Unity. Onde o Unity está usando seu código em assets? Quais caminhos de execução de código chamados pelo método Update de cada frame são críticos para o desempenho? Como você pode depurar, testar e cobrir melhor seu código?

O Rider pode mostrar onde o Unity está usando seu código dentro de cenas, ativos e prefabs, realçando os usos diretamente no Unity Editor.

O Rider 2021.1 estende isso para oferecer suporte a ativos de animação, mostrando o uso de propriedades e métodos como retornos de chamada de animação.

O Rider oferece complementação de código e validação para strings mágicas do Unity. Ele já oferece suporte a tags, nomes de camadas, cenas e corrotinas, e o Rider 2021.1 adiciona suporte para valores de estado de animação.

As versões anteriores do Rider realçavam os métodos como essenciais para o desempenho, frequentemente chamados ou compilados em Burst, mas o motivo nem sempre era óbvio.

O Rider 2021.1 adiciona itens de menu para mostrar todos os métodos chamados no caminho de acesso de volta para um método Update ou rastreia as chamadas de saída para finalmente chegar a uma API Unity que consome muitos recursos.

Para métodos compilados em Burst, o Rider mostrará a rota por meio de todos os métodos chamados de volta ao início do contexto do Burst.

O Rider já fornece suporte de depuração estendido para projetos Unity, mostrando o objeto Active Scene, bem como adicionando componentes e objetos de jogo filho à visualização do depurador.

O Rider 2021.1 também ajudará a depurar instâncias de SerializedProperty. Campos irrelevantes ficam ocultos por padrão, mostrando apenas os valores relevantes para o tipo da propriedade. Você pode ver facilmente as propriedades filho e todos os dados serializados.

O Rider estendeu seu Unity based unit testing support para incluir cobertura de código de testes de modos de jogo. Descubra, execute, depure e mostre a cobertura do código do modo de edição do Unity e testes de modo de reprodução, tudo sem sair do editor de código.

Existem muitas outras pequenas alterações e correções, incluindo manipulação mais robusta de metarquivos, desempenho aprimorado ao adicionar entradas de log na janela de ferramentas do Unity e agrupamento mais agradável de modelos de arquivos relacionados ao Unity.

Godot

Nosso plug-in Godot Support for Rider também foi atualizado. Agora, ele oferece suporte para a execução de testes de unidade NUnit diretamente no processo do jogo para ajudar a garantir que tudo funcione conforme o esperado. Follow the instructions in this pull request to make it work in your game today! Compartilhe seu feedback nos comentários para a solicitação pull.

Unreal Engine Demonstração prévia Somente para Windows

O Rider for Unreal Engine ainda está na fase de demonstração pública e está programado para lançamento como parte do Rider no final de 2021. Você pode usar a versão para avaliação gratuitamente até o lançamento público.

The Unreal Engine’s Cast for type-safe dynamic casting is now available as a postfix template in code completion. O Rider também oferece suporte a outra macro de reflexão específica do Unreal Engine: RIGVM_METHOD.

Foi introduzido o suporte inicial para o Unreal Engine 5 com correções intuitivas com base no feedback que recebemos da equipe da Epic Games.

Do lado do C++, adicionamos Include e Type Hierarchies, bem como suporte para Google Test e alguns frameworks de testes de unidades C++.

VCS

Melhorias em solicitações pull

  • A visualização Pull Requests (PR) agora apresenta uma lista suspensa com todos os repositórios disponíveis para o projeto atual.
  • A criação de solicitações pull agora é simples: basta clicar no ícone “+” ou ir para Git | GitHub | Create Pull Request. O IDE abrirá um formulário na visualização Pull Requests, solicitando que você forneça os detalhes do PR.
  • Na guia Info, você pode selecionar o repositório principal e seu branch, inserir um título e uma descrição para o PR, nomear revisores e responsáveis e adicionar rótulos descritivos.
  • A versão 2021.1 oferece suporte para modelos de PR. Adicione o arquivo pull_request_template.md com a descrição do PR ao seu projeto, e todas as vezes que você criar um PR, essa descrição aparecerá nela.

Saiba mais aqui.

Save to Shelf

Na v2021.1, adicionamos a ação Save to Shelf, que copia suas alterações no Shelf enquanto as mantém nas alterações locais. Você pode acessar essa ação por meio de atalhos ou digitando “Save to Shelf” no pop-up Search Everywhere.

Comparar com o branch

Agora, é possível copiar um arquivo de outro branch na caixa de diálogo Compare with branch. Para fazer isso, selecione o arquivo que você deseja copiar e clique no novo ícone de seta para baixo ao lado de Show diff.

Interface/experiência do usuário

Solution Explorer

O Rider agora salva o estado do Solution Explorer entre o fechamento e a abertura do IDE, incluindo os nós abertos. Você não precisa mais expandir os nós manualmente sempre que reabrir uma solução ou reiniciar o IDE.

Guias do editor divididas verticalmente

Quando houver várias guias abertas do editor divididas verticalmente, você poderá clicar duas vezes nelas para maximizar a janela do editor de cada uma.

Caixa de diálogo de seleção de pastas Somente para Windows

Reformulamos a caixa de diálogo de seleção de pastas no Windows. Agora, ela mostrará apenas as pastas que você pode selecionar.

Soluções recentes da barra de tarefas Somente para Windows

Agora. você pode acessar seus projetos recentes no Windows clicando com o botão direito do mouse no ícone do Rider na barra de tarefas ou no menu Iniciar.

Novas caixas de diálogo modais Somente para macOS

Agora há suporte para a nova UI de caixas de diálogo modais no macOS Big Sur.

Toolbox manager para Windows Forms Somente para Windows

O Toolbox manager para o Designer do Windows Forms foi totalmente reformulado.

A parte esquerda da janela mostra a lista com todas as bibliotecas de controles, do sistema ou de terceiros, agrupadas por fornecedor de controles. Ao selecionar uma biblioteca na lista, você pode selecionar controles específicos no painel do meio. Apenas eles serão mostrados no Toolbox, para manter a lista limpa. O painel direito mostra metadados para um controle selecionado.

Você tem muitos controles em uma biblioteca, mas precisa apenas de um específico? Sem problemas! A nova pesquisa no painel do meio corta a lista de controles e realça a substring de pesquisa na lista de resultados.

Por último, mas não menos importante, há novos contadores na parte inferior que mostram quantos componentes serão removidos ou adicionados ao Toolbox ao salvar. Você não se sentirá perdido com o que será feito depois de clicar no botão Apply.

Editor

Documentação rápida

O realce de sintaxe chega à janela Quick Documentation para fornecer o mesmo realce que você vê no editor de código. Além disso, a janela Quick Documentation para um símbolo agora aparece quando você passa o mouse.

Espessura da fonte

É essencial escolher uma fonte que funcione perfeitamente por longas horas de codificação. As configurações de tipografia incluídas recentemente deixam essa escolha um pouco mais fácil e personalizada. Na versão v2021.1, você pode ajustar o peso da sua fonte principal e da fonte em negrito através de Preferences / Settings | Editor | Fonts.

XAML Previewer

Melhoramos nossa ferramenta XAML Preview, um mecanismo de feedback essencial para desenvolvedores WPF e XAML.

O Rider agora coloca a ferramenta XAML Preview na própria janela do editor, dando a você a opção de alternar entre várias opções de orientação e layout. Você pode alterar a orientação da ferramenta de visualização para ser vertical ou horizontalmente separada do editor.

O elemento em foco agora será realçado, para que você obtenha uma ajudinha extra ao tentar encontrar um elemento de UI específico em um design de UI complexo.

A ferramenta agora permite que você clique em instâncias de TabItem. A adição melhora muito a experiência de construção de interfaces de usuário com várias guias.

A ferramenta XAML Preview agora respeitará propriedades de design, como DesignHeight e DesignWidth, ao renderizar visualizações.

Observe que a ferramenta XAML Preview está disponível apenas no Windows para aplicações direcionadas ao .NET Framework.

Para obter mais detalhes, confira esta postagem de blog: XAML Preview Tool Improvements in Rider 2021.1.

Estilos de código

Estilos de formatação e código

Adicionamos algumas novas configurações:

  • Agora, você pode escolher se deseja definir um espaço antes e dentro dos parênteses em new() com tipo de destino.
  • Você pode especificar a quebra antes do operador de atribuição.
  • É possível recuar instruções de rótulo à direita.

Para regras de nomenclatura personalizadas, atualizamos a ordem em que elas são aplicadas: as mais específicas agora são aplicadas primeiro.

Por fim, adicionamos uma nova ação Reindent only para a seleção de formato. Agora, você pode instruir o Rider a ajustar apenas os recuos do código selecionado, em vez de realizar todo o processo de reformatação.

EditorConfig

O EditorConfig está se tornando uma ferramenta popular na comunidade .NET e estamos continuamente aprimorando sua integração com o Rider. Aqui estão as melhorias que fizemos:

  • Melhoramos a forma como o Rider lê as configurações de regras de nomenclatura do EditorConfig e grava as regras de nomenclatura definidas pelo usuário no EditorConfig.
  • Se as regras de nomenclatura forem substituídas no EditorConfig, o Rider mostrará uma notificação na página de configurações de nomenclatura.
  • Adicionamos suporte para a opção csharp_indent_case_contents_when_block no EditorConfig.

Suporte para F#

Adicionamos uma nova refatoração Inline Variable para associações let locais.

Agora, o Rider pode calcular um nível de linguagem permitido com base no projeto e compilador usado em um build e sugerir melhorias para tornar seu código F# mais moderno e atualizado.

To Interpolated String, um novo analisador e solução rápida, visa converter uma string de formato no estilo printf em uma string interpolada F# 5. Thanks again to Saul for the nice implementation.

A análise de parênteses redundantes e a correção rápida correspondente irão ajudar você com parênteses em padrões, tipos e expressões simples. Estamos planejando cobrir mais casos de expressão em versões futuras.

Há muito mais correções rápidas, refatorações e outras melhorias no suporte para F#. Please see the full release notes for more details.

Integração com o Space

O plug-in Space agora está disponível para Rider. Você pode se conectar à sua organização no JetBrains Space por meio da opção Get from VCS, localizada na tela de boas-vindas. Uma vez conectado, você pode visualizar e clonar repositórios de projeto, revisar o código de seus colegas de equipe e escrever scripts do Space Automation.

Suporte para bancos de dados

Interface do usuário para permissões de acesso

Adicionamos uma IU para editar concessões ao modificar objetos.

A janela Modify user, que você pode invocar em um usuário no Database Explorer com Ctrl+F6, agora tem uma UI para adicionar concessões a objetos.

Disponível para PostgreSQL, Redshift, Greenplum, MySQL, MariaDB, DB2, SQL Server e Sybase.

As funções do sistema podem ser usadas sem qualificação SQL Server

Funções e procedimentos do sistema não aparecem mais em destaque como erros quando usados sem qualificação. A navegação e a complementação agora também funcionam para eles.

Saiba mais sobre as atualizações no suporte para banco de dados na página Novidades no DataGrip.

Outras atualizações

NuGet Smart Restore em uma compilação

Implementamos a configuração NuGet Smart Restore on a build. Ela executa uma restauração em uma ação de compilação quando a heurística detecta que uma restauração externa foi executada. Se quiser desativar essa configuração , acesse Settings/Preferences | Build, Execution, Deployment | NuGet | Smart Restore on Build.

Compilação em paralelo no Mono

O Rider agora suporta compilação em paralelo em versões recentes do Mono. Habilite-a em Settings | Build, Execution, Deployment | Toolset and Build.

Dependências externas em Find in Files

Agora, é possível configurar como o Rider tratará as dependências externas ao pesquisar texto. Na caixa de diálogo Find in Files, selecione Scope e clique no botão '…'. A janela Scopes será aberta e, nela, você poderá ver se Dependências externas estão incluídas ou excluídas do escopo. É possível alterar isso usando os botões à direita.

Suporte ao formato JSON Lines

Agora oferecemos suporte ao formato JSON Lines delimitado por nova linha, usado para trabalhar com dados estruturados e registros. O IDE reconhece os tipos de arquivo .jsonl, .jslines, .ldjson e .ndjson.

Os arquivos nesses formatos contêm várias linhas, e cada nova linha é um objeto JSON separado por um caractere de nova linha. Vírgulas não são necessárias no início ou no final das linhas e não há necessidade de colocar todo o conteúdo do arquivo entre colchetes ou chaves.