Novidades no RubyMine 2022.1

Suporte para novos recursos de linguagem do Ruby e RBS, novas inspeções e correções rápidas, melhorias na UX (experiência do usuário) e muito mais.

Ruby

Suporte para novos recursos de linguagem

O RubyMine 2022.1 adiciona suporte para novos recursos do Ruby e RBS introduzidos no Ruby 3.1. Isto inclui suporte para genéricos limitados, coleção RBS, encaminhamento de argumentos de bloco anônimos, aliases de tipo genérico e muito mais.

Novas inspeções

Esta versão adiciona várias novas inspeções que verificam o uso de variáveis de tipo no RBS. Essas inspeções relatam assinaturas de tipos ausentes, uso de argumentos de tipo inválidos, variações conflitantes em variáveis de tipo, variações incorretas de argumentos de tipo e muito mais.

Sobrecargas na Documentação Rápida

Agora, o RubyMine pode mostrar sobrecargas na pesquisa da Documentação Rápida (Ctrl+Q). Quando você chamar a Documentação Rápida num método, será mostrada a sobrecarga atual correspondente.

Dicas embutidas para métodos Ruby baseados no RBS

Agora, o RubyMine mostra dicas embutidas para código Ruby com base em assinaturas de tipo dos arquivos RBS correspondentes. Clicar em uma dica levará você até a assinatura de tipo correspondente.

Uma correção rápida para assinaturas de tipo incompatíveis

O RubyMine relata tipos inferidos no código Ruby que não correspondem aos tipos esperados do RBS. A partir da v2022.1, você pode navegar rapidamente até o arquivo RBS correspondente nesses casos.

Complementação automática melhorada para a tag @overload do YARD

O RubyMine compreende a tag @overload e sugerirá todas as sobrecargas declaradas ao mostrar informações de parâmetros. A partir desta versão, a complementação automática para a tag @overload adiciona o nome de um método que você está descrevendo.

Experiência do usuário

Caixa de diálogo New Project reformulada

Reformulamos a interface da caixa de diálogo New Project para agilizar a criação de novos projetos para iniciantes e usuários experientes.

Suporte às opções generate do Rails 7

Esta compilação adiciona suporte para as novas opções do framework JavaScript para geração de projetos que foram adicionadas no Rails 7. Agora, você pode selecioná-las ao criar um novo projeto usando a caixa de diálogo New Project.

A nova janela de ferramentas Notifications

Substituímos o Log de Eventos por uma nova janela de ferramentas Notifications. Isto ajudará você a manter uma visão geral melhor das notificações do IDE, para que você não perca nada importante. Todas as notificações que aparecem na janela de ferramentas estão agora divididas em duas categorias: Suggestions e Timeline.

Caixa de diálogo Open File or Project atualizada

Eliminamos a árvore da caixa de diálogo Open File or Project, o que significa que o IDE não calcula mais todos os nós de diretórios intermediários durante a abertura. Essa alteração melhora o desempenho geral do IDE, evitando travamentos demorados causados pela computação de caminhos sem saída.

Rótulos de abas ocultas no depurador

Para maximizar o espaço utilizável na janela de ferramentas Debugger, ocultamos os rótulos das abas por padrão.

Caixa de diálogo Structural Search and Replace atualizada

Reformulamos a caixa de diálogo Structural Search and Replace para destacar uma lista de todos os modelos visando facilitar a navegação entre eles.

Editor

Nova opção de formatação para recuo de modificadores de visibilidade

Agora, você pode configurar o recuo para modificadores de visibilidade (public, protected, private) e o código dentro deles. Essa configuração está disponível em Preferences/Settings | Editor | Code Style | Ruby | Tabs and Indents e alternando a caixa de seleção Indent visibility modifiers.

Reformatação de código no modo LightEdit

O modo LightEdit permite editar arquivos sem criar ou carregar um projeto inteiro. Agora, você pode reformatar seu código enquanto está no modo LightEdit. Para fazer isso, pressione Ctrl+Alt+L ou vá para Code | Reformat Code no menu principal.

Execução de comandos a partir de arquivos Markdown

Adicionamos um novo ícone de medianiz para arquivos Markdown, ao lado dos comandos shell. Clique nele para executar um comando no terminal incorporado do RubyMine. Isto pode ser útil quando você segue manuais como arquivos README, que geralmente contêm comandos shell.

Cópia de trechos de código para Markdown

Agora, você pode usar a nova ação Copy code snippet para copiar o conteúdo do bloco para a área de transferência.

Mais ações na barra de ferramentas do editor Markdown

Novas opções para a barra de ferramentas flutuante aparecerão 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.

Testes

Navegação até contextos e exemplos compartilhados no RSpec

Agora, você pode navegar das suas especificações até contextos compartilhados e os exemplos compartilhados usados neles. Para fazer isso, clique com a tecla Ctrl pressionada em uma instrução que adiciona um recurso compartilhado: include_context, include_examples, it_behaves_like ou it_should_behave_like.

Docker

Nova UI de exibição Services

Reformulamos significativamente a interface do usuário do Docker na janela de ferramentas Services. A reforma foi implementada para containers, imagens, redes e volumes.

Suporte para o Docker Registry V2

Adicionamos suporte para a API HTTP V2 do Docker Registry para uso com o Docker 1.6+. Você pode criar registros do Docker V2 simples ou protegidos por senha e realizar todas as ações comuns, como visualizar, enviar e extrair imagens.

Controle de versão

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 RubyMine realça as diferenças entre as linhas no editor quando você passa o mouse sobre uma anotação, e é possível abrir a janela de ferramentas Git Log clicando nessa anotação.

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 de Log esteja desativado.

Web e frameworks

Melhor suporte ao Next.js

Graças ao suporte incorporado ao React, todos os principais recursos já devem estar funcionando nos seus projetos Next.js. O RubyMine 2022.1 adiciona suporte para alguns itens específicos de cada framework, como páginas. O IDE resolverá os caminhos usados na propriedade href dos seus componentes Link, bem como em "form" e outras tags. A complementação de código, a navegação e as refatorações também funcionam agora.

Suporte para o Volta

Neste lançamento, adicionamos a integração com o Volta, um gerenciador de ferramentas JavaScript. Agora, o RubyMine reconhece automaticamente o Yarn e o npm instalados usando o Volta.

Outras melhorias

  • Para facilitar a navegação na aba Log, o leitor de tela agora lê os nomes e as descrições das árvores dos branches.
  • O suporte de acessibilidade para usuários do macOS foi aprimorado. Resolvemos o problema do VoiceOver que estava causando várias repetições desnecessárias de elementos de listas. Além disso, agora o VoiceOver pode ler listas de caixas combo, e nós corrigimos o posicionamento incorreto do cursor do VoiceOver ao trabalhar em um monitor externo.
  • Agora, ficou mais fácil trabalhar com as alterações sugeridas. Adicionamos a capacidade de aplicar as alterações ou fazer commit delas localmente, diretamente a partir do IDE.
  • Ao trabalhar com bancos de dados, agora você pode selecionar várias tabelas e copiá-las para outro esquema.
  • Introduzimos uma nova intenção para trabalhar com consultas de banco de dados: Convert To Subquery. Agora, não há sequer a necessidade de selecionar uma consulta: basta pressionar Alt+Enter | Convert To Subquery.
  • Adicionamos suporte para a lógica de resolução em superclasses RBS, que foi atualizada para torná-la consistente com o Ruby: RUBY-29164.
  • Removemos o suporte para o Rails 3.
  • A palavra-chave extend adiciona métodos a uma classe singleton e não deve ter acesso a variáveis de tipo. Agora, o RubyMine mostra um erro quando alguém tenta usar variáveis de tipo com extend: RUBY-29099.
  • Atualizamos o painel Commit Details na janela de ferramentas Git. Agora, ele inclui informações sobre assinaturas GPG e status de builds. Antes, esses dados eram mostrados apenas como uma coluna no Git Log.
  • Adicionamos suporte ao Corepack, uma ferramenta Node.js experimental que permite o uso do Yarn e do pnpm sem que seja necessário instalá-lo. Se quiser experimentar, certifique-se de executar corepack enable no terminal incorporado: o recurso não está ativado por padrão.
  • A complementação Tailwind CSS agora funciona em templates FreeMarker.
  • Removemos os templates de arquivos HTML4 e XHTML, pois eles não eram amplamente usados.
  • A assistência para codificação de Webpacks agora funciona com módulos ES nos seus arquivos webpack.config.js.
  • Agora, o formatador de linha de comando oferece suporte a um modo de simulação para validar arquivos de projetos.
  • Agora, você pode configurar as abas divididas para terem a mesma largura. Para isso, marque a nova opção Equalize proportions in nested splits em Preferences / Settings | Advanced Settings.
  • Agora, é possível exportar diagramas UML como arquivos yEd .graphml, JGraph .drawio, Graphviz .dot, Graphviz .dot com posições, além de arquivos Mermaid .md, Plantuml e IDEA .uml, o que os torna compatíveis com ferramentas de terceiros. Para exportar, use a ação correspondente no menu de contexto disponível ao clicar com o botão direito do mouse.