Novidades no RubyMine 2020.2

Uma nova maneira de revisar problemas no código, 27 novas ações de intenção, suporte para Liquid, suporte completo para pull requests do GitHub e muitos outros novos recursos para Ruby, Rails, JS e ferramentas de banco de dados.

Insight de código

Uma nova maneira de revisar e corrigir problemas no código

Uma nova maneira de revisar e corrigir problemas no código

Adicionamos um novo widget que mostra o número de problemas no arquivo atual. Clicar nele abre uma janela de ferramenta com uma lista desses problemas. De lá, você pode pular para o código que contém um issue ou pode corrigir issues diretamente na janela de ferramentas.

Saiba mais

Linguagem de modelo Liquid

Suporte básico para a linguagem de modelo Liquid

Suporte básico para a linguagem de modelo Liquid

O RubyMine 2020.2 inclui suporte básico para a linguagem de modelo Liquid. O IDE mostra se há algum problema com a sintaxe, fornece modelos dinâmicos para inserir construções usadas com frequência e reformata o código de acordo com os requisitos que você especificou nas configurações de Code Style.

Mais informações sobre o suporte ao Liquid

Novas ações de intenção inteligente

Economize tempo ao codificar!

O RubyMine 2020.2 vem com uma série de novas ações de intenção que você pode usar (Alt+Enter) para otimizar rapidamente seu código.

Inverta operadores ternários e "if-else"

Inverta operadores ternários e "if-else"

Com a ação Invert ‘if-else’, você pode inverter um operador "if-else" para que a condição seja negada e os branches sejam trocados. Para operadores ternários, há a ação de intenção Flip ‘?:’, que funciona da mesma maneira.

Alterne entre instruções aninhadas "if" e expressões booleanas

Alterne entre instruções aninhadas "if" e expressões booleanas

Use a ação Merge nested ‘if’ para mesclar uma instrução aninhada em uma expressão booleana. Para invocar essa ação, coloque o sinal de intercalação no if externo da expressão.

Split into multiple ‘ifs’ realiza a ação oposta e está disponível com o sinal de intercalação no operador booleano.

Saiba mais

Alterne entre instruções "else/if" e "elsif"

Alterne entre instruções "else/if" e "elsif"

Com as ações de intenção Merge ‘else if’ e Split ‘elsif’, você pode dividir uma instrução elsif em um branch else/if aninhado, e vice-versa.

Mesclar/dividir "if"s sequenciais

Mesclar/dividir "if"s sequenciais

A ação Merge/split sequential ‘if’s está disponível nas palavras-chave elsif ou if. Ela sugere a mesclagem de dois branches quando o código dentro deles é exatamente o mesmo. O RubyMine combinará então as duas condições usando um operador || e adicionará parênteses, se necessário. A ação Split into multiple ‘if’s fará o oposto.

Expandir ou recolher namespace

Expandir ou nivelar namespace

Essas ações de intenção expandirão linhas com os operadores de resolução de escopo :: em módulos aninhados, e vice-versa. Observe que a ação Flatten namespace recolherá os módulos acima dele.

Classificar hashes por suas chaves

Classificar hashes por suas chaves

Use essa ação de intenção para classificar hashes alfabeticamente por suas respectivas chaves. Ela também funciona para hashes com diferentes tipos de chave. Nesse caso, as chaves são agrupadas por seu tipo e, em seguida, são classificadas.

Saiba mais

Adicionar/remover parênteses clarificadores

Adicionar/remover parênteses clarificadores

A ação de intenção Add clarifying parentheses funciona para expressões binárias e ternárias. Ela adiciona parênteses a expressões complexas que dependem da precedência do operador para esclarecer como a expressão deve ser avaliada. Você também pode chamar Remove unnecessary parentheses.

Saiba mais

Adicionar/remover sublinhados em números

Adicionar/remover sublinhados em números

A ação Add underscores adiciona sublinhados para números grandes, para facilitar a legibilidade. Os tipos com suporte são integer/float/octal (adiciona um sublinhado a cada 3 dígitos) e hexadecimal/binary (coloca sublinhados a cada 4 caracteres/dígitos).

É possível chamar a ação Remove underscores em números com sublinhados.

Introduzir uma nova variável local

Introduzir uma nova variável local

Use essa ação de intenção para introduzir uma nova variável local quando o sinal de intercalação for colocado em uma expressão.

Variável local inline

Variável local inline

Essa ação de intenção é útil durante a refatoração, nos casos em que você acaba com uma variável que é usada apenas uma vez.

Alternar entre comentários de bloco e linha

Alternar entre comentários de bloco e linha

Agora, você pode converter comentários de bloco em comentários de linha, e vice-versa. Observe que essas ações estão disponíveis apenas para comentários que começam no início da linha, pois comentários de bloco exigem isso.

Editor de código

Legibilidade melhorada de instruções dobradas if/while/for

Legibilidade melhorada de instruções dobradas if/while/for

Para construções dobradas, como if, while e for, o RubyMine agora exibe a condição ou as variáveis usadas na primeira linha. Essa abordagem facilita ver se você precisa desdobrar a construção e examiná-la.

Renderização de comentários da documentação RDoc/YARD dentro do editor

Ler documentos RDoc ou YARD no editor pode ser irritante por conta de todas as tags que você precisa percorrer, especialmente quando você precisa interagir com os links de referência e as imagens. É por isso que estamos adicionando uma maneira de renderizar a documentação diretamente no editor.

Habilite esse recurso em Preferences/Settings | Editor | General | Appearance | Render documentation comments.

Injeções Heredoc

Injeções Heredoc

Agora, o RubyMine oferece suporte a injeções de heredoc, que permitem definir uma string de várias linhas e, ao mesmo tempo, manter a formatação e o recuo originais. Use esse recurso para incorporar snippets de código, como HTML ou SQL.

Saiba mais

Navegação aprimorada entre métodos

Navegação aprimorada entre métodos

Agora, você pode navegar entre supermétodos e métodos de sobreposição, chamando uma ação de intenção ou clicando no ícone na medianiz.

Ruby

Suporte para intervalos sem começo

Suporte para intervalos sem começo

Como sempre, o RubyMine oferece suporte para a versão mais recente do Ruby. Por exemplo, o RubyMine v2020.2 oferece suporte para intervalos sem começo, que foram introduzidos no Ruby 2.7.

Complementação melhorada para métodos de biblioteca padrão

Complementação melhorada para métodos de biblioteca padrão

O RubyMine agora sugere uma complementação muito mais precisa para uma variedade de métodos de biblioteca padrão, incluindo Array#sort_by, Hash#each e muitos outros.

Converter parâmetros nomeados em numerados, e vice-versa

Converter parâmetros nomeados em numerados, e vice-versa

Agora, você pode facilmente converter parâmetros nomeados em numerados, introduzidos no Ruby 2.7. Coloque o sinal de intercalação sobre qualquer parâmetro nomeado, pressione Alt+Enter e selecione a ação Convert named parameters to numbered intention. A ação Convert numbered parameters to named fará o oposto.

Saiba mais

Adicionar um attr_accessor/reader/writer a uma variável de instância

Adicionar um attr_accessor/reader/writer a uma variável de instância

Com as novas ações de intenção, você pode facilmente adicionar um atributo accessor, reader ou writer a variáveis de instância. Para fazer isso, coloque o cursor em uma variável e pressione Alt+Enter.

Rails

Expandir lazy keys

Expandir lazy keys

Em aplicações Rails que usam lazy keys (lazy lookups), essa ação de intenção expandirá automaticamente a chave para sua forma completa. Se houver uma lazy key em um controlador, a intenção poderá perguntar para qual lazy key a expansão deve ser feita (pois pode haver várias opções).

Git

Suporte completo para pull requests do GitHub

Você não precisa mais alternar entre o navegador e seu IDE. Agora, o fluxo de trabalho inteiro do pull request pode ser concluído dentro do RubyMine!

Com a versão v2020.2, você pode procurar, atribuir, gerenciar e até mesmo mesclar pull requests, ver a linha do tempo e comentários embutidos, enviar comentários e revisões e aceitar alterações.

Saiba mais sobre o suporte a pull requests do GitHub

Caixa de diálogos de ações do Git aprimoradas

Agora, as caixas de diálogo Merge, Pull e Rebase do Git têm melhor consistência visual e são menos confusas. Com o novo design, você pode ver rapidamente qual comando Git será executado.

Também adicionamos a opção –rebase à caixa de diálogo Pull e a opção –no-verify à caixa de diálogo Merge.

JavaScript e TypeScript

Novas intenções inteligentes para JavaScript

Novas intenções inteligentes para JavaScript

Novas intenções inteligentes (Alt+Enter) ajudarão você a executar algumas ações com mais rapidez. 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 integrado para organizar seu código? Com essa atualização, isso ficou ainda mais fácil do que antes. Basta marcar 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 arquivo também podem ser facilmente adicionados.

Saiba mais

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 para o Vue em projetos TypeScript e muitas outras coisas. O suporte ao Vue no RubyMine nunca foi tão avançado!

Saiba mais

Ferramentas de banco 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 ou 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.

Uma nova interface do usuário para valores booleanos

Uma nova interface do usuário para valores boolianos

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

Edição:

  • A tecla de espaço alterna valores como costumava fazer.
  • Digitar f, t, d, n, g ou c inserirá os valores correspondentes: false, true, default, null, generated e computed.
  • Digitar qualquer outra coisa abrirá uma lista suspensa com todos os valores possíveis.

Outras alterações

  • A complementação de código assistida por ML e introduzida na versão v2020.1 provou ser eficiente na melhoria da relevância das sugestões de complementação de código. Decidimos habilitá-la por padrão na versão v2020.2.
  • Nova apresentação de resultados de pesquisa no Search Everywhere, com itens classificados por sua relevância para a consulta de pesquisa.
  • O RubyMine 2020.2 oferece suporte ao Git instalado no WSL2 para o trabalho com projetos localizados em sistemas de arquivos Linux ou Windows.
  • Agora, você pode gerar relatórios de cobertura de código para várias suítes e exportá-los para HTML.
  • Suporte básico para Google BigQuery, um dialeto SQL. O RubyMine poderá realçar e fornecer assistência de codificação corretamente para suas consultas se você usar o Google BigQuery.
  • Agora, a complementação de código mostra nomes de tipos completos para métodos que substituem outros métodos a partir de classes ou módulos pai. Isso facilita a compreensão de onde vem um método sugerido.
  • Agora, você pode iniciar o console do IRB a partir do recurso Run Anything com o Ruby 2.7.
  • Agora, a complementação no Gemfile mostra apenas a versão local mais recente das gems.
  • Agora, o RubyMine mostrará um aviso se você tentar transmitir um número incorreto de parâmetros para métodos stub, incluindo Array.to_h(), Dir.each() e outros.
  • Adicionamos o aviso "ordinary parameter is defined" para todos os casos de lambda em parâmetros numerados.
  • Adicionamos suporte de tipo para a chamada "not" em cadeias de relações de registros ativas. Agora, quando não forem fornecidos argumentos para um método "where", o RubyMine oferecerá "not" como complementação.
  • Melhoramos a acessibilidade e, agora, o RubyMine habilitará automaticamente os recursos de acessibilidade se um usuário tiver um leitor de tela habilitado.