Novedades de ReSharper C++ 2024.2

ReSharper C++ 2024.2 incorpora nuevas funcionalidades de C++23, renueva las descripciones emergentes con información sobre el diseño de tipos y aporta varias mejoras a la refactorización Rename. Para los desarrolladores de Unreal Engine, ReSharper C++ 2024.2 es compatible con las características de los structs e incluye una nueva inspección que detecta las llamadas perdidas a los métodos base.

Descargar

Prueba gratuita de 30 días disponible

Compatibilidad con C++23

ReSharper C++ 2024.2 es compatible con el operador de subíndice multidimensional. El uso de operator[] con varios argumentos hace que sea más compatible con los contenedores y las vistas multidimensionales.

Ahora, ReSharper C++ también entiende las directivas del preprocesador #elifdef y #elifndef de C++23/C23 que complementan las directivas #ifdef y #ifndef existentes.

[assume()]] es un nuevo atributo en C++23 que se puede portar y añade una forma de proporcionar información adicional al optimizador utilizando una expresión de argumento. ReSharper C++ ahora analiza el argumento y es compatible con todas las funcionalidades habituales de inteligencia de código que contiene.

Unreal Engine

Ahora, ReSharper C++ reconoce las características de los structs de Unreal Engine. En los structs anotados por características de los structs, ReSharper C++ comprueba que los métodos necesarios estén presentes y los genera si faltan.

Una nueva inspección detecta las llamadas a métodos base que faltan, especialmente en los métodos BeginDestroy y GetLifetimeReplicatedProps. La corrección adjunta inserta la llamada Super necesaria.

Otra nueva inspección marca los usos de IOnlineSubsystem::Get() y los sustituye por Online::GetSubsystem(this->GetWorld()).

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.2.

Diseño de tipos

Ahora, las descripciones emergentes con información rápida incluyen información sobre el diseño de los tipos. Basta con pasar el cursor sobre una clase o un campo de clase para comprobar su tamaño y alineación.

Si pasa el cursor por encima de un campo de clase, verá, además, el desplazamiento del campo desde el inicio del objeto y el relleno que se añade después del campo.

Mejoras de «Rename»

Al renombrar un archivo, ahora ReSharper C++ ofrece una nueva opción para renombrar los archivos relacionados con el mismo nombre. Por ejemplo, si renombra un archivo de encabezado, el archivo .cpp que incluye el encabezado también se renombrará.

Hay otra opción que le permite renombrar el tipo de forma automática dentro del archivo para que coincida con el nuevo nombre del archivo.

Por último, al renombrar un espacio de nombres en un archivo con un nombre que coincida, tiene la opción de renombrar el archivo que lo contiene de forma automática.

Análisis del código

Hemos actualizado el paquete binario clang-tidy a Clang 18, lo que añade nuevas comprobaciones y mejoras de la última versión de LLVM.

Similar a la compatibilidad con comentarios NOLINT en la actualización 2024.1, ReSharper C++ ahora reconoce pragmas include-what-you-use para suprimir la inspección Possible unused #include directive.

Hemos añadido una corrección para utilizar reinterpret_cast en errores de conversión en los que el tipo de origen o de destino es un puntero a char o std::byte.

Otros

Ahora, la opción del menú de inspección Why is ReSharper suggesting this? lleva a las directrices básicas de C++ relacionadas con la inspección de código.

El filtro Base method call está disponible en la ventana Find Results para que pueda filtrar llamadas a métodos base de la lista de usos.

ReSharper C++ ahora incorpora escritura asíncrona, que es parte del trabajo de mejora del rendimiento de ReSharper al permitir que se ejecute fuera de proceso con Visual Studio. Nuestras pruebas internas muestran que habilitar la escritura asíncrona mejora la fluidez al escribir.

ReSharper C++ también mejora la compatibilidad con proyectos CMake en Visual Studio, con lo que se resuelven varios problemas importantes y se mejora el rendimiento al editar código.

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