Novedades de RubyMine 2020.2

Un nuevo modo de revisar los problemas en el código, 27 nuevas acciones de intención, compatibilidad con Liquid, compatibilidad total con las solicitudes de extracción de GitHub y muchas más funcionalidades para Ruby, Rails, JS y las herramientas de bases de datos.

Información del código

Un nuevo modo de revisar y resolver los problemas en el código

Un nuevo modo de revisar y resolver los problemas en el código

Hemos añadido un nuevo widget que muestra el número de incidencias en el archivo actual. Al hacer clic en él, se abre una ventana de herramientas que enumera esas incidencias. Desde esta lista, puede ir al código que contiene una incidencia, o puede resolver las incidencias directamente desde la ventana de herramientas.

Más información

Lenguaje de la plantilla Liquid

Compatibilidad básica con el lenguaje de la plantilla Liquid

Compatibilidad básica con el lenguaje de la plantilla Liquid

RubyMine 2020.2 incluye compatibilidad básica con el lenguaje de la plantilla Liquid. El IDE le mostrará si hay algun problema con la sintaxis, le proporcionará plantillas activas para insertar construcciones usadas frecuentemente y reformateará el código según los requisitos que especifique en la configuración Code Style.

Más información sobre la compatibilidad con Liquid

Nuevas acciones de intención inteligentes

¡Ahorre tiempo al programar!

RubyMine 2020.2 incluye multitud de nuevas acciones de intención (Alt+Intro), que puede usar para optimizar rápidamente su código.

Invertir los operadores ternarios e if-else

Invertir los operadores ternarios e if-else

Con la acción Invert ‘if-else’, puede invertir un operador if-else para que se niegue la condición y las ramas se intercambien. Para los operadores ternarios, la acción de intención Flip ‘?:’ funciona del mismo modo.

Cambiar entre instrucciones ‘if’ anidadas y expresiones booleanas

Cambiar entre instrucciones ‘if’ anidadas y expresiones booleanas

Utilice la acción Merge nested ‘if’ para combinar una instrucción en una expresión booleana. Para invocar esta acción, coloque el signo de intercalación en el if externo de la expresión.

Split into multiple ‘ifs’ realiza la acción contraria, y está disponible al colocar el signo de intercalación en el operador booleano.

Más información

Cambiar entre instrucciones ‘else/if’ y ‘elsif’

Cambiar entre instrucciones ‘else/if’ y ‘elsif’

Con las acciones de intención Merge ‘else if’ y Split ‘elsif’, puede dividir una instrucción elsif en una rama else/if anidada y viceversa.

Combinar/dividir ‘if’s secuenciales

Combinar/dividir ‘if’s secuenciales

La acción Merge/split sequential ‘if’s está disponible en las palabras clave elsif o if. Sugiere la combinación de dos ramas si el código dentro de esas ramas es idéntico. A continuación, RubyMine combinará las dos condiciones utilizando un operador || y añadirá paréntesis en caso de que sea necesario. La acción Split into multiple ‘if’s hará lo contrario.

Expandir o reducir el espacio de nombres

Expandir o reducir el espacio de nombres

Estas acciones de intención expandirán las líneas con los operadores de resolución de ámbito :: en módulos anidados y viceversa. Tenga en cuenta que la acción Flatten namespace reducirá los módulos situados sobre ella.

Ordenar hashes por sus claves

Ordenar hashes por sus claves

Utilice esta acción de intención para ordenar los hashes alfabéticamente por su clave. También funciona para los hashes con diferentes tipos de clave. En este caso, las claves se agrupan por su tipo y, después, se ordenan.

Más información

Añadir/quitar paréntesis aclarativos

Añadir/quitar paréntesis aclarativos

La acción de intención Add clarifying parentheses funciona con las expresiones binarias y ternarias. Añade paréntesis a expresiones complejas que se basan en la precedencia de los operadores, con el fin de aclarar cómo se debe evaluar la expresión. También puede quitar los paréntesis innecesarios invocando la acción Remove unnecessary parentheses.

Más información

Añadir/quitar guiones bajos en números

Añadir/quitar guiones bajos en números

La acción Add underscores añade guiones bajos a los números grandes para mejorar la legibilidad. Los tipos admitidos son integer/float/octal (añade un guion bajo cada 3 dígitos) y hexadecimal/binary (añade un guion bajo cada 4 caracteres/dígitos).

Puede invocar la acción Remove underscores en los números con guiones bajos.

Introducir una nueva variable local

Introducir una nueva variable local

Utilice esta acción de intención para introducir una nueva variable local cuando se coloca el signo de intercalación en una expresión.

Variable local inline

Variable local inline

Esta acción de intención es útil durante la refactorización en los casos en los que se encuentra con una variable que solo se utiliza una vez.

Cambiar entre los comentarios de bloque y de línea

Cambiar entre los comentarios de bloque y de línea

Ahora puede convertir los comentarios de bloque en comentarios de línea y viceversa. Tenga en cuenta que estas acciones solo están disponibles para los comentarios que empiezan al principio de la línea, ya que es obligatorio para los comentarios de bloque.

Editor de código

Mejora de la legibilidad de las instrucciones plegadas if/while/for

Mejora de la legibilidad de las instrucciones plegadas if/while/for

Para las construcciones plegadas, como if, while y for, RubyMine ahora muestra la condición o variable utilizada en la primera línea. Este enfoque permite ver más fácilmente si necesita desplegar la construcción para examinarla.

Visualización de comentarios de la documentación RDoc/YARD en el editor

Leer documentos RDoc o YARD en el editor puede resultar molesto debido a todas las etiquetas que tiene que soportar, especialmente cuando tiene que interactuar con los enlaces e imágenes de referencia. Por eso hemos añadido un modo para generar la documentación directamente en el editor.

Habilite esta funcionalidad en Preferences/Settings | Editor | General | Appearance | Render documentation comments.

Inyecciones Heredoc

Inyecciones Heredoc

RubyMine ahora es compatible con las inyecciones heredoc que le permiten definir una cadena de varias líneas al tiempo que mantiene el formato y la indentación originales. Utilícelas para incrustar fragmentos de código, como HTML o SQL.

Más información

Navegación mejorada entre métodos

Navegación mejorada entre métodos

Ahora puede navegar entre los métodos súper y de anulación invocando una acción de intención o haciendo clic en el icono del medianil.

Ruby

Compatibilidad con rangos sin inicio

Compatibilidad con rangos sin inicio

Como siempre, RubyMine es compatible con la versión más reciente de Ruby. Por ejemplo, RubyMine v2020.2 es compatible con los rangos sin inicio, que se introdujeron en Ruby 2.7.

Finalización mejorada para los métodos de biblioteca estándar

Finalización mejorada para los métodos de biblioteca estándar

RubyMine ahora sugiere una finalización mucho más precisa para distintos métodos de biblioteca estándar, incluidos Array#sort_by, Hash#each y muchos otros.

Convertir los parámetros con nombres en números y viceversa

Convertir los parámetros con nombres en números y viceversa

Ahora puede convertir fácilmente los parámetros con nombres en parámetros con números, a partir de Ruby 2.7. Coloque el signo de intercalación sobre cualquier parámetro con nombre, pulse Alt+Intro y seleccione la acción de intención Convert named parameters to numbered. La acción Convert numbered parameters to named hará lo contrario.

Más información

Añada un attr_accessor/reader/writer a una variable de instancia

Añada un attr_accessor/reader/writer a una variable de instancia

Con las nuevas acciones de intención, puede añadir fácilmente una propiedad accessor, reader o writer de atributo a las variables de instancia. Para ello, coloque el signo de intercalación en una variable y pulse Alt+Intro.

Rails

Expandir lazy keys

Expandir lazy keys

En las aplicaciones Rails que utilicen lazy keys (lazy lookups), esta acción de intención expandirá de forma automática la clave a su forma completa. Si hay una lazy key en un controlador, la intención podría preguntar a qué lazy key se quiere expandir (ya que puede haber varias opciones).

Git

Compatibilidad total con las solicitudes de extracción de GitHub

Ya no necesita cambiar entre el navegador y su IDE. ¡El flujo de trabajo completo de la solicitud de incorporación de cambios se puede completar ahora desde RubyMine!

Con la versión 2020.2, puede explorar, asignar, gestionar e incluso combinar las solicitudes de incorporación de cambios, ver la línea de tiempo y los comentarios de línea, enviar comentarios y revisiones, y aceptar los cambios.

Más información acerca de la compatibilidad con las solicitudes de extracción de GitHub

Cuadros de diálogo de acciones Git mejorados

Los cuadros de diálogo Git Merge, Pull y Rebase ahora muestran una mejor coherencia visual y mayor claridad. Con el nuevo diseño, puede ver rápidamente qué comando Git se ejecutará.

También hemos añadido la opción –rebase al cuadro de diálogo Pull y la opción –no-verify al cuadro de diálogo Merge.

Javascript y Typescript

Nuevas intenciones inteligentes para JavaScript

Nuevas intenciones inteligentes para JavaScript

Las nuevas intenciones inteligentes (Alt+Intro) le ayudarán a realizar algunas acciones más rápidamente. Por ejemplo, ahora puede convertir rápidamente un bucle for con un índice numérico en un método de vector forEach. Consultar los comentarios de la documentación en archivos JavaScript y TypeScript también se ha vuelto más sencillo, ya que ahora puede mostrarlos directamente en el editor para minimizar las distracciones.

Haga de Prettier el formateador predeterminado en sus proyectos JavaScript

Haga de Prettier el formateador predeterminado en sus proyectos JavaScript

¿Quiere utilizar Prettier en lugar del formateador integrado para organizar su código? Con esta actualización, se ha vuelto incluso más fácil que antes. Solo tiene que marcar la casilla de verificación On code reformat y el IDE utilizará Prettier cada vez que reformatee archivos .js, .ts, .jsx y .tsx. También se pueden añadir fácilmente otros tipos de archivo.

Más información

Disfrute de la mejor compatibilidad con Vue

Disfrute de la mejor compatibilidad con Vue

En el último año, hemos añadido la compatibilidad con Nuxt.js, configuraciones de estilo de código específicas de Vue, mejoras para Vue en los proyectos TypeScript y muchas cosas más. ¡La compatibilidad con Vue en RubyMine nunca había sido tan avanzada!

Más información

Herramientas para bases de datos

Editor separado para valores de celdas

Editor separado para valores de celdas

Ahora si tiene un valor muy grande en su celda, puede verlo o editarlo en un panel separado. También puede cambiar entre el modo de salto de línea suave (soft wrap) utilizando la barra de herramientas de la derecha.

Una nueva interfaz de usuario para valores booleanos

Una nueva interfaz de usuario para valores booleanos

Ahora hay un modo más intuitivo de ver y editar valores booleanos. Los valores True ahora se marcan con una viñeta para distinguirlos de los demás.

Edición:

  • La tecla Espacio alterna entre los valores como solía hacerlo antes.
  • Al pulsar f, t, d, n, g o c se introducirán los valores correspondientes: false, true, default, null, generated y computed.
  • Si se pulsa cualquier otra tecla, se abrirá una lista desplegable con todos los valores posibles.

Otros cambios

  • La finalización asistida por ML introducida en la versión 2020.1 ha demostrado su eficacia para mejorar la relevancia de las sugerencias en la finalización de código. Hemos decidido activarla de forma predeterminada en la versión 2020.2.
  • Nueva presentación de los resultados de búsqueda en Search Everywhere, con los elementos ordenados según su relevancia respecto a la consulta de búsqueda.
  • RubyMine 2020.2 es compatible con Git, instalado en WSL2 para trabajar con proyectos ubicados en sistemas de archivos Linux o Windows.
  • Ahora puede generar informes de cobertura de código de varias suites y exportarlos a HTML.
  • Compatibilidad básica con Google BigQuery, un dialecto de SQL. RubyMine puede resaltar correctamente y ofrecerle asistencia a la codificación para sus consultas si utiliza Google BigQuery.
  • La finalización de código ahora muestra los nombres de tipo completo para los métodos que anulan otros métodos de clases o módulos primarios. Esto le permite comprender mejor la procedencia de un método sugerido.
  • Ahora puede ejecutar la consola IRB desde Run Anything con Ruby 2.7.
  • La finalización en el Gemfile ahora solo muestra la versión local más reciente de las gemas.
  • RubyMine ahora muestra una advertencia si intenta transmitir un número de parámetros incorrecto a los métodos de stub, incluidos Array.to_h(), Dir.each() y otros.
  • Hemos añadido la advertencia «ordinary parameter is defined» para todos los casos lambda en los parámetros numerados.
  • Hemos añadido la compatibilidad de tipo para la llamada «not» en las cadenas de relación de registro activas. Ahora cuando no se proporcione un argumento para un método «where», RubyMine ofrecerá «not» como finalización.
  • Hemos mejorado la accesibilidad y ahora RubyMine habilitará de forma automática las funcionalidades de accesibilidad si el usuario tiene un lector de pantalla activado.