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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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!
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.
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:
f
, t
, d
, n
, g
ou c
inserirá os valores correspondentes: false
, true
, default
, null
, generated
e computed
. Array.to_h()
, Dir.each()
e outros. 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.