Novedades de RubyMine 2023.3

Compatibilidad mejorada con AI Assistant, rutas personalizadas para aplicaciones y motores Rails, información del código para locales estrictos de Rails 7.1, declaraciones adicionales de RBS, actualización para los renderizadores de tipos Debugger, RuboCop en modo servidor, inspecciones de código Brakeman y mucho más.

AI Assistant Disponibilidad general

AI Assistant de JetBrains ya está disponible para todos con una serie de funcionalidades nuevas y mejoradas para aumentar su productividad en los IDE de JetBrains.

AI-generated name suggestions

Compatibilidad con sugerencias de nombres generados por IA

Ahora puede activar las sugerencias de nombres generadas por la IA para variables locales y parámetros en su código Ruby. Esta acción está disponible cuando se utiliza la refactorización Rename inline. Para activar las sugerencias de nombres, seleccione la casilla Provide AI-generated name suggestions en Settings | Tools | AI Assistant.

AI assistant context

Contextos Ruby mejorados

Seguimos mejorando los contextos de Ruby y la forma en que los LLM analizan su base de código. Estos cambios influyen en el modo en que AI Assistant genera la documentación, explica su código Ruby, reconoce el contenido de los archivos y mucho más.

Generación de pruebas de unidad

Generación de pruebas de unidad

Con AI Assistant, puede generar sin esfuerzo pruebas para los métodos públicos de su aplicación Ruby o Rails. Seleccione el método que desee cubrir con pruebas y pulse ⌥ + Intro en macOS o Alt + Intro en Windows. En el menú contextual, seleccione AI Actions y, a continuación, Generate Unit Tests.

Utilice AI Assistant en RubyMine como funcionalidad complementaria con una suscripción a JetBrains AI Service.

Rails

Custom paths for Rails

Rutas personalizadas para aplicaciones y motores Rails

RubyMine reconoce cuándo utiliza rutas personalizadas en sus aplicaciones y motores Rails. Además de las rutas predeterminadas, como app, app/controllers y app/models, el IDE reconoce cualquier otra ubicación de su proyecto cuando se configura. Esto le permite redefinir la estructura predeterminada y seguir beneficiándose de las funcionalidades de información del código de RubyMine. Para configurar las rutas personalizadas, vaya a Settings | Languages & Frameworks | Rails | Paths.

Importación automática de rutas Rails

Importación automática de rutas Rails

Hemos implementado una nueva opción para detectar automáticamente rutas personalizadas dentro de su aplicación Rails. Cada vez que abre su proyecto, RubyMine intenta importar la configuración de las rutas Rails en segundo plano.

Code insight for elements outside default location

Información del código de los modelos, controladores y programas de envío de correo electrónico almacenados fuera de sus ubicaciones predeterminadas

Todas sus funciones favoritas de información del código, como la navegación y la compatibilidad con tipos, funcionarán ahora con modelos, controladores y programas de envío de correo electrónico, aunque se encuentren fuera de sus directorios predeterminados.

Strict locals

Información del código para locales estrictos de Rails 7.1

RubyMine ahora es compatible con las funcionalidades de resolución, finalización, Find Usages, Rename y la navegación para locales estrictos.

Inferencia de tipos

Type provision for self-type bindings

Provisión de tipos para los tipos self personalizados dentro de bloques

RubyMine dispone ahora de compatibilidad para personalizar el tipo self de los bloques de RBS a Ruby. Esta funcionalidad es beneficiosa para los DSL y ayudará a RubyMine a reconocerlos, mejorando la comprensión del código.

Annotation to specify self-type of blocks

Anotación personalizada para especificar el tipo self de los bloques

Ahora, utilizando un comentario tipo YARD, puede indicar explícitamente el tipo self de los bloques directamente dentro de ellos.

Extra declarations from RBS

Compatibilidad con declaraciones adicionales desde RBS

Hemos implementado una compatibilidad básica para reconocer las declaraciones adicionales de RBS cuando están ausentes en sus archivos Ruby. Esto resulta especialmente útil para los proyectos que utilizan en gran medida la reflexión, ya que permite que estas declaraciones sigan estando presentes en la finalización y en otras funcionalidades de RubyMine. La funcionalidad está disponible para clases, módulos, constantes, métodos y variables.

Depurador

Debugger type renderers

Actualización de los renderizadores de tipo del depurador

Ya no es necesario reiniciar el depurador para aplicar los cambios en los renderizadores de tipos. Solo tiene que pulsar el botón Apply y RubyMine los recargará al instante.

Herramientas y bibliotecas

Rubocop server mode

RuboCop en modo servidor

RubyMine permite ejecutar RuboCop en modo servidor de forma automática. Para que esta opción funcione, asegúrese de que se cumplen los siguientes requisitos:

  • Linux o MacOS
  • Ruby MRI local 2.3 o posterior
  • RuboCop 1.31 o posterior
Brakeman

Inspecciones del código Brakeman

Ahora, puede ver cómodamente la información de Brakeman dentro de RubyMine en un formato fácil de usar. Aborde los problemas de seguridad con prontitud, gracias al fácil acceso a la documentación de Brakeman, los indicadores de confianza y mucho más. Asegúrese de que tiene instalada la gema brakeman y, a continuación, vaya a Code | Analyze Code | Run inspection by name e inicie el análisis.

rspec-parameterized

Especificaciones parametrizadas con rspec-parametrizado

RubyMine proporciona compatibilidad completa con la sintaxis RSpec::Parameterized, incluidas sugerencias de reconocimiento, resolución y finalización. También hemos implementado configuraciones de ejecución y depuración para mejorar su experiencia durante la ejecución de pruebas.

let_it_be support

Declaraciones fixture con let_it_be

Hemos añadido la compatibilidad con declaraciones fixture en pruebas RSpec utilizando bloques let_it_be. Esto incluye funcionalidades como la resolución de variables, el resaltado de sintaxis, la gestión automática de la inserción de bloques do para before_all, etc. Para habilitar esta funcionalidad, tendrá que instalar la gema test-prof.