Novedades de ReSharper C++ 2024.3

ReSharper C++ 2024.3 mejora el rendimiento en soluciones de gran tamaño, implementa nuevas funcionalidades de C++23 y C23, e incluye la refactorización Move to folder. En los proyectos de Unreal Engine, ahora ReSharper C++ ofrece finalización de código para etiquetas de juego y para argumentos de macros de registro, así como la mejora de la compatibilidad con elementos delegados.

Descargar

Prueba gratuita de 30 días disponible

Mejoras de rendimiento

En ReSharper C++ 2024.3, nos hemos centrado en optimizar el uso de la memoria en soluciones de gran tamaño, lo que reduce de forma significativa el uso de la memoria. Según nuestras pruebas, ahora el uso de la memoria después de la indexación inicial es aproximadamente un 20 % inferior en Unreal Engine y un 30 % inferior en Chromium.

Este ahorro de memoria, combinado con las mejoras para reducir el tráfico de memoria, también ha aumentado la velocidad de indexación. Por ejemplo, la indexación inicial de la solución LLVM ahora es hasta un 10 % más rápida.

Funcionalidades del lenguaje

ReSharper C++ 2024.3 completa la compatibilidad con las principales funcionalidades de C++23 con sufijos literales para size_t y atributos en expresiones lambda. Además, ahora se evalúa la característica de tipo std::has_unique_object_representations de C++17.

Para los usuarios de C, ReSharper C++ es compatible con las palabras clave typeof y typeof_unqual, así como con la macro __has_c_attribute de C23.

Para mejorar la compatibilidad con compiladores que no sean MSVC, ReSharper C++ implementa varias extensiones del compilador GNU, entre las que se incluyen rangos de «switch case», parámetros de macro variádicos con nombre, el atributo de tipo transparent_union y __attribute((aligned(...))). ReSharper C++ también es capaz de reconocer compiladores nuevos integrados, incluidas las características de tipo adicionales y las comparaciones de punto flotante.

Unreal Engine

Ahora, la finalización de código sugiere nombres de categorías y niveles de verbosidad en los argumentos de las macros UE_LOG y UE_LOGFMT. Las plantillas activas incorporadas con los mismos nombres ayudan a añadir rápidamente nuevas declaraciones de registro.

Ahora, ReSharper C++ descubre las etiquetas de juego definidas en el proyecto y las sugiere al completar el argumento de la función FGameplayTag::RequestGameplayTag.

La mejora de la compatibilidad con la macro UDELEGATE incluye la finalización de los especificadores de reflexión dentro de los atributos de macro y el seguimiento del número de usos de Blueprints para los miembros de clase de tipos delegados.

Si le interesa un IDE independiente y multiplataforma para el desarrollo de Unreal Engine, considere Rider. La compatibilidad con Unreal Engine en Rider y ReSharper C++ está alineada, y puede esperar las mismas mejoras en la actualización de Rider 2024.3.

Refactorización Move to Folder

Ahora, puede mover fácilmente archivos C++ con la refactorización Move to Folder. Después de mover los archivos seleccionados a la nueva ubicación, la refactorización actualiza las directivas #include para reflejar los cambios en la estructura del proyecto.

Asistencia a la codificación

Para los usuarios que trabajan con la biblioteca de gamas de C++20, hemos incluido nuevas acciones contextuales para convertir los usos de adaptadores de gamas entre las formas de tubería y llamada. También hemos mejorado los mensajes de diagnóstico de errores de sobrecarga al utilizar adaptadores de gama en forma de tubería.

ReSharper C++ 2024.3 es compatible con los comentarios TODO multilínea, lo que permite que el texto sangrado de las líneas siguientes se trate como parte del mismo elemento TODO. Además, si encuentra un elemento TODO que enlace con una incidencia externa, puede utilizar la acción Peek To-do link (Ctrl+Mayús+Clic) para mostrar la incidencia inline.

Ahora, el asistente de escritura inserta de forma automática un espacio antes de un paréntesis de apertura cuando está activada la opción del formateador Space before parentheses in control statements.

Los nuevos ajustes del formateador permiten configurar el estilo de las llaves para las propiedades C++/CLI y el salto de línea antes de un bloque de prueba de función.

Generación de código

Si su proyecto utiliza sintaxis XML en lugar de Doxygen para los comentarios de documentación, ahora puede personalizar fácilmente el estilo de la plantilla de documentación predeterminada en la configuración Code Generation. Ahora, ReSharper C++ también es capaz de reconocer la documentación XML dentro de /** ... */ y la muestra correctamente en las descripciones emergentes.

Hay una nueva configuración que le permite controlar si las acciones de generación de código deberían conservar los argumentos de función predeterminados al crear funciones de anulación.

Integración con herramientas de Clang

ReSharper C++ 2024.3 incluye los binarios clang-tidy y clang-format de Clang 19, con nuevas comprobaciones y mejoras de la última versión de LLVM.

Ahora, los comentarios // NOLINT(...) en el código que desactivan comprobaciones específicas de clang-tidy también desactivan las inspecciones correspondientes de ReSharper.

Ahora, el formateador integrado reconoce los comentarios // clang-format off y // clang-format on y desactiva el formateo en las áreas delimitadas.

Eche un vistazo a las Novedades de ReSharper para conocer el resto de los cambios introducidos en esta versión.

Descargar

Prueba gratuita de 30 días disponible