Novidades no RubyMine 2021.3

Assinaturas de tipo RBS incorporadas, novas inspeções para verificação de tipos e arquivos RBS, suporte para workflows de desenvolvimento remoto, melhorias na UX (experiência do usuário) e muito mais.

Ruby e RBS

Assinaturas de tipo RBS incorporadas

Esta versão vem com assinaturas RBS incorporadas. Com as assinaturas do RBS presentes, o RubyMine é capaz de fornecer assistência de código aprimorada, como verificação de tipos em tempo real, navegação mais precisa, pesquisa e refatoração e muito mais.

Novas inspeções para arquivos RBS

Nesta versão, adicionamos doze novas inspeções para arquivos RBS. O RubyMine verificará o código RBS quanto a problemas de estilo, entidades não utilizadas, problemas de herança, incompatibilidades em declarações parciais e assim por diante.

O corretor ortográfico integrado do RubyMine agora também funciona para arquivos RBS.

Informações de parâmetro com base no RBS

O pop-up Parameter Info (Ctrl+P) exibe os nomes e tipos de parâmetros de métodos. Agora, ele pode usar informações de tipo das assinaturas RBS correspondentes (se estiverem presentes).

Direitos autorais para arquivos RBS

Seu projeto pode conter arquivos RBS que você deseja proteger por direitos autorais. Em vez de adicionar um aviso de direitos autorais a cada arquivo separadamente, agora você pode adicionar informações de copyright automaticamente no início dos arquivos RBS.

Executar RuboCop ao salvar

Agora, você pode configurar o RuboCop para reformatar arquivos todas as vezes que um deles for alterado. As alterações são salvas de maneira automática ou manual. Para habilitar esse recurso, procure o rubocop em Preferences / Settings e marque a caixa de seleção Run ‘rubocop -a’ on save.

Verificação de tipos

Mais inspeções para verificação de tipos baseada no RBS

Adicionamos uma série de novas inspeções para detectar incompatibilidades entre os valores atribuídos e os tipos esperados extraídos do RBS.

Essas inspeções verificam os tipos de constantes, variáveis de instâncias e classes, parâmetros de métodos e blocos, valores de retorno, argumentos transmitidos para gerar chamadas e variáveis globais. Você pode encontrá-las em Preferences / Settings | Editor | Inspections | Ruby.

Suporte inicial para o Sorbet

Agora, o RubyMine reconhece assinaturas do tipo Sorbet, incluindo aquelas de arquivos .rbi . As inspeções de incompatibilidade de tipos para argumentos de métodos e valores de retorno agora podem funcionar com base no Sorbet.

Você pode navegar entre arquivos Ruby e RBI correspondentes usando as ações Go To | Type Signature / Associated Declaration no menu de contexto. Você também pode usar o atalho Ctrl+Alt+Home.

Desenvolvimento remoto

Suporte para workflows de desenvolvimento remoto

Agora, o RubyMine oferece suporte a uma versão inicial do workflow de desenvolvimento remoto. Ele permite que você se conecte de qualquer lugar do mundo a uma máquina remota executando um back-end do RubyMine. Todo o processamento acontecerá naquela poderosa máquina remota, e você poderá trabalhar no projeto perfeitamente como se estivesse em sua máquina local.

Experiência do usuário

Melhorias de desempenho

Neste lançamento, estamos trabalhando em melhorias de desempenho para o editor de código. Ações como abrir arquivos, digitar, invocar complementação de código e aplicar correções rápidas agora funcionam mais rápido.

Em arquivos de projeto de tamanho médio isto pode não ser muito perceptível, mas ao se trabalhar com arquivos grandes (2.000 linhas de código ou mais) a diferença é notável.

Janela de ferramentas Bookmarks

Nesta versão, reformulamos a funcionalidade dos bookmarks. Você pode criar bookmarks com nomes personalizados e agrupá-los em nós. Todos os bookmarks agora estão localizados na nova janela de ferramentas Bookmarks (Alt+2).

Dividir a janela de ferramentas Run

Agora, você pode dividir a janela de ferramentas Run na horizontal ou vertical. Isto pode ser útil quando existem várias configurações rodando e você quer ver seus resultados ao mesmo tempo.

Basta arrastar e soltar a aba desejada até a área realçada. Você pode arrastar a aba de volta para desfazer a divisão da janela de ferramentas ou pode clicar com o botão direito no painel superior e selecionar Unsplit no menu de contexto.

Visualização do código-fonte para Show Usages

Agora, você pode ativar a visualização do código-fonte na janela Show Usages (Ctrl+Alt+F7) clicando no ícone quadrado.

VCS

Checkout and Rebase onto Current para branches remotos

A ação Checkout and Rebase onto Current permite que você faça o check-out do branch selecionado faça um rebase dele sobre um branch que já esteja em check-out. Até agora, isto só estava disponível para branches locais. A partir desta versão, adicionamos a capacidade de aplicar essa ação a branches remotos também.

Nova janela de ferramentas Changes ("Alterações")

A partir desta versão, o RubyMine exibirá os dados de commits e a diferença entre commits numa janela de ferramentas Changes separada, localizada à esquerda do editor.

Para abrir a nova janela de ferramentas, vá até a aba Log do seu sistema de controle de versão, clique com o botão direito do mouse numa revisão e selecione Compare with local a partir do menu de contexto.

Nova ação Push All up to Here

Criamos uma nova ação que permite que você faça push de todos os commits até aquele que você selecionou. Isto pode ser útil quando você tiver vários commits prontos para serem enviados, enquanto outros ainda estiverem em andamento.

Web e frameworks

Complementação de código aprimorada para HTML

Melhoramos o funcionamento da complementação de código em arquivos HTML. Anteriormente, as sugestões de complementação em arquivos HTML só apareciam quando você digitava o caractere <. A partir desta versão, você também pode ver sugestões de complementação para arquivos HTML ao digitar um nome de tag ou uma abreviação.

Atualizar pacotes npm a partir do editor

Agora, você pode atualizar pacotes npm para a versão mais recente diretamente do editor. Abra o arquivo package.json, coloque o cursor na versão do pacote que você deseja atualizar, pressione Alt+Enter e selecione Update ‘package name’ to the latest version.

Aprimoramentos no cliente HTTP

Adicionamos suporte para respostas binárias, solicitações gRPC, redirecionamento de saída para um arquivo ou diretório personalizado, suporte para texto e streams JSON e suporte para identificadores de solicitações HTTP.

Space

Fazer merge de solicitações e análises de código no IDE

Para projetos localizados no Space, agora você pode criar solicitações merge e revisões de código diretamente do IDE. Para chamar essas ações, clique no ícone + na barra de ferramentas superior da janela de ferramentas Code Reviews.

Marcar arquivos como visualizados

Nas análises de código, os arquivos que você ainda não analisou serão marcados com pontos azuis. Isto vai lhe ajudar a ter certeza de que não perderá nenhuma alteração nos projetos do Space ao realizar revisões de código.

Os pontos desaparecerão automaticamente depois que você abrir os itens marcados. Se quiser revisar as alterações mais tarde, você pode selecionar Mark as Not Viewed no menu de contexto.

Ferramentas de banco de dados

Banco de dados no sistema de controle de versão

Agora, você pode gerar uma fonte de dados DDL a partir de uma fonte real, usar a fonte de dados DDL para mapear essa fonte real e compará-las e sincronizá-las em qualquer direção.

Aggregates

Adicionamos a capacidade de mostrar uma exibição Aggregate para um intervalo de células. Basta selecionar o intervalo de células cuja exibição você deseja mostrar e depois clicar com o botão direito e selecionar Show Aggregate View.

Nova janela diff do banco de dados

Agora, você pode usar a nova janela diff do banco de dados para comparar dois esquemas ou objetos: basta selecioná-los e pressionar Ctrl+D.

A primeira linha é a detecção automática do cabeçalho

A partir desta versão, quando você abrir ou importar um arquivo CSV, o RubyMine detectará automaticamente que a primeira linha é o cabeçalho e contém os nomes das colunas.

Outras melhorias

  • Agora, é possível usar um leitor de tela para criar projetos (IDEA-185260).
  • Foram desabilitados o pop-up do widget da janela de ferramentas (IDEA-278151) e o pop-up de documentação rápida (IDEA-274143) que costumavam aparecer ao passar o mouse.
  • Foi corrigido um problema ao chamar o pop-up Go To Declaration or Usages (IDEA-272536).
  • Vários problemas relacionados ao foco de locução foram resolvidos (IDEA-273021).
  • A verificação de tipos, as inspeções de argumentos incompatíveis e a ação parameter info agora funcionam para chamadas super em métodos substituídos.
  • Foi adicionado suporte para parâmetros REST do RBS (também conhecidos como parâmetros de comprimento variável), entre outros parâmetros.
  • Agora, você pode navegar entre métodos sobrecarregados em arquivos RBS usando novos ícones de medianiz.
  • Ao criar um novo arquivo RBS, você pode usar o símbolo :: em um nome de arquivo para criar um arquivo que contém os módulos circundantes.
  • Agora, você pode usar o formato Class#method para encontrar métodos por meio de Search | Symbols.
  • Agora, o RubyMine oferece suporte a variáveis e atributos de instâncias singleton e é capaz de fornecer verificação de tipos e dicas para esses casos.
  • A estrutura de configurações VCS ficou mais clara.
  • Foram corrigidos vários problemas relacionados ao mapeamento de arquivos .js e .d.ts e foram adicionados ícones de medianiz para navegar entre eles.
  • Foi adicionado suporte a interpretador remoto Node.js para npm, ESLint, Mocha e Jest.
  • O tempo de indexação de arquivos JavaScript foi diminuído em 20%.
  • Agora, você pode baixar módulos ES6 remotos do editor: coloque o cursor no caminho de importação, pressione Alt+Enter e selecione Download module.
  • O terminal incorporado agora oferece suporte à nova API ConPTY no Windows. Usar isto como back-end para o terminal nos ajuda a resolver vários problemas que os usuários estavam enfrentando com a implementação antiga, que era baseada no winpty. Ele também adiciona suporte para cores de 24 bits no terminal.
  • Nesta versão, incluímos suporte a digitação antecipada para o terminal incorporado. O terminal agora pode prever modificações de texto que serão mostradas instantaneamente numa fonte ligeiramente diferente. Isto pode ser útil ao trabalhar numa máquina remota, pois o IDE será capaz de mostrar os caracteres tão rápido quanto faria numa máquina local, mesmo com a latência.