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.
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.
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.
¡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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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
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.
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.
¿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.
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!
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.
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:
f
, t
, d
, n
, g
o c
se introducirán los valores correspondientes: false
, true
, default
, null
, generated
y computed
. Array.to_h()
, Dir.each()
y otros. 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.