Novedades de RustRover 2024.2

Los aspectos más destacados de esta versión incluyen la compatibilidad con el desarrollo de frontend y las bases de datos, así como la finalización de código de línea completa.

Descargar

Gratis para uso no comercial. Prueba de 30 días disponible.

Desarrollo de frontend y compatibilidad con bases de datos

En respuesta a sus comentarios, hemos reimplementado la compatibilidad con tecnologías web y bases de datos en RustRover.

Finalización de código de línea completa para Rust

Esta versión introduce la finalización de código de línea completa para el lenguaje Rust. Esta funcionalidad sugiere líneas enteras de código utilizando un modelo de aprendizaje profundo que se ejecuta localmente sin enviar ningún dato fuera de su IDE. El texto gris de una sola línea sugiere declaraciones completas basadas en el contexto del archivo actual. La finalización de código de línea completa está incluida en su suscripción a RustRover sin coste adicional.

Posibilidad de adjuntar el depurador a procesos en ejecución

Ahora puede depurar aplicaciones activas sin reiniciarlas. Esto facilita el trabajo con bibliotecas dinámicas o complementos en programas gestionados externamente.

Varias mejoras para Cargo.toml

  • Cuando acepte una sugerencia de finalización para una propiedad con un tipo diferente, el signo de intercalación permanecerá en el mismo lugar.
  • Ahora, una propiedad de nivel superior irá entre corchetes con [] si su tipo es un objeto, y [[]] si su tipo es un vector de objetos.
  • En los encabezados, si una propiedad puede ser un vector de un tipo simple o un objeto, al utilizar una sugerencia de finalización para ella no se añadirán corchetes dobles.
  • La finalización está disponible para lints.
  • Una nueva comprobación impide declarar un vector como un vector de tablas.

Conmutador de perfiles Cargo

Ahora, al utilizar configuraciones de ejecución/depuración, un conmutador de perfiles Cargo específico le permite especificar el perfil, por lo que ya no tendrá que hacerlo manualmente.

Mejor compatibilidad con el operador ?

Hemos mejorado significativamente la comprobación de tipos del operador ?. Ahora el operador es sugerido por la finalización automática en varios casos, incluidas las llamadas a métodos encadenados. También hay una nueva inspección para resaltar las llamadas a unwrap() que permiten utilizar ?.

Mejoras en las carpetas

Para mayor comodidad, las carpetas de módulos están ahora marcadas como paquetes en la vista Project para ayudar a distinguirlas de las normales.

Además, al arrastrar y soltar un archivo ya no se activa un cuadro de diálogo Move para el directorio principal.

Mejoras enProc_macro

Expansión de macros desde dependencias opcionales en un área de trabajo

Cargo compila ahora proc_macros y scripts de compilación para todas las dependencias necesarias para que el análisis de código funcione correctamente. Tenga en cuenta que en casos excepcionales tendrá que desactivar funcionalidades que entren en conflicto explícitamente.

Arreglos rápidos para atributos

Los nuevos arreglos rápidos sugieren ahora añadir los atributos #[proc_macro], #[proc_macro_derive] y #[proc_macro_attribute] a su pub fn en los contenedores de macros procedimentales.

Acciones de intención en llamadas a macros de tipo función

Las acciones de intención están ahora disponibles para los tokens con un único elemento coincidente en la macro expandida correspondiente.

Finalización para referencias de nombre no resueltas

Si crea un uso de una función antes de declararla, el IDE le ofrecerá ahora una sugerencia de finalización con su nombre.

Otros

Esta actualización también introduce muchas otras mejoras:

  • La ejecución de una prueba ya no recompila el proyecto dos veces.
  • Ahora los consejos de inserción están disponibles en las cadenas de métodos asíncronos.
  • El IDE envuelve ahora los valores de retorno del tipo Option<...> en Some() (E0308).
  • Nuevas advertencias le informan sobre falsos negativos en la sintaxis de {variables:?} (E0277).
  • Se ha mejorado el resaltado de los métodos no resueltos (E0599).
  • El IDE ahora le avisa en caso de un return innecesario.
  • La aplicación del arreglo Convert the identifier cambia ahora todos los usos relevantes del identificador.
  • Se ha corregido el error Extern location for crate does not exist on sync.
  • El formateador integrado funciona significativamente mejor, tras haberse corregido en él más de 20 problemas.
  • Soporte disponible para la funcionalidad postfix-match inestable.
  • El valor tras Option/Result se muestra ahora en la vista Threads & Variables cuando se depura con Unix LLDB.
  • La compatibilidad con argumentos de macro format! ha mejorado, y el IDE ahora resalta los métodos no resueltos.

Opciones de interfaz de usuario en japonés, coreano y chino

Los paquetes para los idiomas de interfaz de usuario chino, japonés y coreano ahora se incluyen en la instalación inicial del IDE. Puede cambiar el idioma desde Settings | Appearance & Behavior | System Settings | Language and Region.

Líneas adhesivas que tienen en cuenta el lenguaje

Ahora puede elegir los lenguajes en los que desea que aparezcan las líneas adhesivas. Puede personalizar esta funcionalidad en Settings | Editor | General | Sticky Lines o utilizando el menú contextual que aparece al hacer clic con el botón derecho en una línea adhesiva en el editor.

Opción de vista previa en Search Everywhere

El cuadro de diálogo Search Everywhere ahora incluye como opción una vista previa de los elementos de la base de código que está buscando. Al habilitar esta funcionalidad mediante el icono Preview de la barra de herramientas del cuadro de diálogo aparecerá un panel de vista previa bajo los resultados de búsqueda, que le ofrecerá contexto adicional y le facilitará la navegación por el proyecto.

AI Assistant

Actualmente estamos implementando la integración específica de Rust con AI Assistant, pero todavía se encuentra en sus fases más tempranas de desarrollo. ¡Pronto habrá más novedades!

RustRover también heredó el desarrollo remoto y la colaboración, así como las funcionalidades de los sistemas de control de versiones del lanzamiento de la plataforma.