Novedades de ReSharper C++ 2024.1

ReSharper C++ 2024.1 mejora la compatibilidad con módulos C++20 e implementa llamadas salientes en Call Tracking. Las mejoras de asistencia a la codificación incluyen mejoras en la refactorización Change Signature, la actualización de los comentarios de documentación y mucho más. Para los desarrolladores de Unreal Engine, ReSharper C++ 2024.1 es compatible con el marco de trabajo de la interfaz de usuario Slate y la finalización de rutas de activos en código C++.

Descargar

Prueba gratuita de 30 días disponible

Compatibilidad con módulos C++20

Ahora, gracias a la actualización del proceso de descubrimiento de módulos, ReSharper C++ es compatible con unidades de partición internas, que son unidades de partición de módulos que no contribuyen a la interfaz externa de un módulo. En otras palabras, son particiones de módulo sin una declaración de export module asociada.

Hemos mejorado la representación interna de los módulos C++20 exportados para facilitar las referencias transitivas a entidades importadas de otros módulos. Antes, estas entidades se volvían a exportar desde el módulo que las importaba. Esperamos que este cambio reduzca de forma significativa la huella de los módulos exportados y mejore el rendimiento en proyectos que utilicen módulos C++20.

Unreal Engine

Ahora, ReSharper C++ 2024.1 es compatible con el marco de trabajo de la interfaz de usuario Slate de Unreal Engine. Puede confiar en el formateador de código de ReSharper y en el asistente de escritura para formatear su código Slate según las convenciones de Unreal Engine. También se han actualizado funciones como Go to declaration, Find Usages y Rename para comprender la sintaxis declarativa de Slate.

La integración de ReSharper C++ con la funcionalidad Blueprint continúa y es compatible con añadir redirecciones de núcleo al renombrar una instancia UENUM, así como con la finalización de rutas de activos para nombres de recursos en código C++.

Ahora, las interfaces HLSL utilizadas para la vinculación dinámica de sombreadores son compatibles con el código de sombreadores.

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

Llamadas salientes en Call Tracking

Ahora, Call Tracking de ReSharper permite navegar por las cadenas de llamadas salientes de C++, además de permitir el seguimiento de las llamadas entrantes. Para explorar las llamadas salientes, coloque el cursor sobre cualquier función y seleccione Inspect | Outgoing calls en el menú contextual. También puede pulsar Ctrl+Mayús+Alt+A para invocarlo desde el menú Inspect This.

Mejoras de Change Signature

Ahora, con Change Signature, puede cambiar fácilmente el tipo de un parámetro de función entre un puntero, una referencia o un tipo de valor. ReSharper actualizará de forma automática los usos de los parámetros dentro del cuerpo de la función y ajustará los argumentos de la función en los lugares de llamada a la función, añadiendo operadores de desreferenciación o de dirección donde sea necesario.

Ahora, al invocar Change Signature en una función que se puede usar en código dependiente, la refactorización permite verificar los cambios y confirmar qué usos deben actualizarse.

Ahora, también puede especificar argumentos predeterminados para los nuevos parámetros de función añadidos mediante Change Signature.

Otras actualizaciones importantes de Change Signature son:

  • Mejora de la gestión de plantillas de funciones variádicas.
  • Actualización correcta de los argumentos de función para las posiciones de llamada dentro de las llamadas a macros.
  • Ahora, Change Signature conserva los tipos de vector y el especificador de tipo int en los tipos unsigned int.

Comentarios de documentación

Ahora, puede personalizar el estilo de los comentarios de documentación generados sin necesidad de editar una plantilla activa. Para configurar el estilo de los comentarios de documentación, vaya a Settings | Code editing | C++ | Code generation en ReSharper.

JetBrains Grazie es el nuevo corrector gramatical y ortográfico integrado de ReSharper, introducido en ReSharper 2023.3. En la versión 2024.1, las inspecciones gramaticales con Grazie también están disponibles dentro de los comentarios de documentación de C++.

Ahora, la refactorización Change Signature mantiene los comandos @param sincronizados con la lista de parámetros de la función. Esta refactorización elimina los comandos @param para los parámetros eliminados, añade comandos para los nuevos parámetros y reorganiza los comandos existentes para que coincidan con el orden actualizado de los parámetros incluidos.

Análisis del código

Según los últimos resultados de la extensa suite de pruebas para herramientas de refactorización de C++ mantenida por Richard Thomson, ReSharper C++ sigue superando a otras herramientas al pasar el mayor número de casos de prueba. Como parte de nuestro trabajo constante para mejorar la calidad de las sugerencias de ReSharper, hemos resuelto varios problemas identificados por la suite de pruebas de Richard en ReSharper C++ 2024.1. Por ejemplo, ahora, el arreglo rápido Create constructor from usage añade un constructor de forma predeterminada cuando es necesario.

Ahora, ReSharper C++ 2024.1 sugiere eliminar los inicializadores cero idiomáticos redundantes en la inicialización agregada. Hay inspecciones nuevas que encuentran varios problemas con miembros de datos estáticos, como especificadores redundantes inline en miembros de datos static constexpr.

La limpieza de código añade nuevos elementos para eliminar los especificadores de accesibilidad redundantes y para hacer que las clases sin herederos sean final. Ahora, además de variables locales, Apply ‘auto’ style maneja variables globales y miembros de clase.

Si desea suprimir una inspección en un ámbito específico, antes podía utilizar comentarios // ReSharper disable específicos de ReSharper. Además, ReSharper C++ 2024.1 reconoce los comentarios NOLINT, NOLINTNEXTLINE y NOLINTBEGIN ... NOLINTEND que usa Clang-Tidy.

Formateo de código

ReSharper C++ 2024.1 introduce varias opciones de formato nuevas:

  • Break line after goto labels y Indent goto labels mejoran el formateo de las declaraciones etiquetadas.
  • Ajustes que controlan el ajuste de texto dentro de las enumeraciones en Arrangement of enumerations.
  • Ahora, Empty braces formatting incluye la opción Do not change.

Ahora, al utilizar una configuración .clang-format, el formateador de ReSharper respeta las opciones DisableFormat e IndentAccessModifiers. Ahora, el estilo GNU integrado con formato .clang también es compatible.

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

Descargar

Prueba gratuita de 30 días disponible